View previous topic :: View next topic |
Author |
Message |
Yczo Apprentice
Joined: 09 Jul 2011 Posts: 225
|
Posted: Mon Jan 21, 2013 8:08 pm Post subject: imposible compilar en C como usuario [Solucionado] |
|
|
Hola muy buenas, desde siempre tengo un extraño problema con gcc que no tengo ni idea de resolver.
El caso es que no hay manera de compilar las practicas que me exigen para la universidad si no es como root, lo que no me gusta nada. He mirado posts pero no he logrado una solución, por eso venia aquí a ver si alguien puede hacer el favor de echarme una mano.
Cuando compilo como root no hay problema, todo funciona normal, pero vereís si intento compilar como mi usuario obtengo el siguiente error
Code: |
$ gcc -o main.c
gcc-config: error: could not run/locate 'gcc'
|
Observad que tengo permiso en el directorio y en el fichero
Code: |
$ ls -l
-rwxrwxrwx 1 enigma enigma 211 dic 12 11:44 main.c
ls -l ..
drwxrwxrwx 4 enigma enigma 4096 ene 21 20:36 prueba
|
si como usuario listo los compiladores que tengo, obtengo
Code: |
$ gcc-config -l
[1] avr-4.4.5 * (Aterisco color azul claro)
[2] x86_64-pc-linux-gnu-4.6.3 * (Asterisco color verde)
|
El primer compilador lo uso sin problema para realizar programas en compilación cruzada para microcontroladores atmel sobre placas arduinio y no debo eliminarlo pero creo que el asterisco azul que tiene lo clasifica como secundario.
Ahora un dato curioso, si como root ejecuto
Code: |
ls -l /usr/bin/gc*
-rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gc-analyze
-rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcc
lrwxrwxrwx 1 root root 62 ene 13 03:38 /usr/bin/gcc-4.6.3 -> /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc
-rwxr-xr-x 1 root root 22979 ene 9 2009 /usr/bin/gcc-config
-rwxr-xr-x 1 root root 10384 ene 9 2009 /usr/bin/gccbug
-rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcj
lrwxrwxrwx 1 root root 62 ene 13 03:38 /usr/bin/gcj-4.6.3 -> /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcj
-rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcj-dbtool
-rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcjh
lrwxrwxrwx 1 root root 63 ene 13 03:38 /usr/bin/gcjh-4.6.3 -> /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcjh
-rwxr-xr-x 1 root root 64568 ene 13 12:11 /usr/bin/gconf-merge-tree
-rwxr-xr-x 1 root root 64544 ene 13 12:11 /usr/bin/gconftool-2
-rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcov
lrwxrwxrwx 1 root root 63 ene 13 03:38 /usr/bin/gcov-4.6.3 -> /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcov
|
obtengo los archivos correspondientes y algunos enlaces simbolicos como debe ser; Ahora viene lo interesante: Si ejecuto esta misma instrucción como usario normal, estos enlaces simbolicos estan en rojo parpadeando, es decir como si los destinos de los enlaces estuviesen borrados, lo que creo que de alguna forma me indica que no tengo permisos, sin embargo si como root listo los permisos de los destinos de esos enlaces simbolicos, tomare uno solo por poner el ejemplo
Code: |
ls -l /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gc*
-rwxr-xr-x 1 root root 340912 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc
lrwxrwxrwx 1 root root 23 ene 13 03:38 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc-4.6.3 -> x86_64-pc-linux-gnu-gcc
-rwxr-xr-x 1 root root 353240 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcj
-rwxr-xr-x 1 root root 6080 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcjh
-rwxr-xr-x 1 root root 35152 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcov
|
como veis, todos tienen permisos de lectura y ejecución para todos los usuarios. Una locura para mi xddd
No se que pensar ¿Debe mi usuario pertenecer a algún grupo especial para poder compilar mis practicas?
por verificar alguna incompatibiliad, aqui pongo mi fstab
Code: |
/dev/sda1 / ext4 noatime,nodiratime 0 1
/dev/sda2 /home ext4 noatime,nodiratime 0 2
#movido en make.conf a /tmp/portage (archivos de fuentes) tmpfs /usr/portage/ tmpfs size=7100M 0 0
#enlazado en /tmp/tmp (archivos de compilacion) tmpfs /var/tmp tmpfs size=7100M 0 0
tmpfs /var/log tmpfs size=300M 0 0
tmpfs /tmp tmpfs size=7100M 0 0
#info paquetes instalados tmpfs /var/db/pkg tmpfs size=300M 0 0 #Contiene info de los paquetes instalados
#tmpfs /var/lib/portage tmpfs size=700M 0 0
#/dev/sda5 none swap sw 0 0
/dev/sr0 /media/cdrom auto noauto,ro,user 0 0
#en la red nfs hay que usar nolock en el montaj para que lo debloquee
enigma:/home/enigma/Archivos /home/enigma/Archivos/Multimedia/Red-Poco/ nfs nolock,rw,user,noauto,sync,hard,intr 0 0
enigma:/Archivos /home/enigma/Archivos/Multimedia/Red-Mucho/ nfs nolock,rw,user,noauto,sync,hard,intr 0 0
#/dev/fd0 /media/floppy auto noauto 0 0 No hay unidad de disco flsexible
proc /proc proc defaults 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
|
Gracias de antemano.
Saludos.
Last edited by Yczo on Tue Feb 12, 2013 7:30 pm; edited 2 times in total |
|
Back to top |
|
|
cameta Veteran
Joined: 04 Aug 2004 Posts: 1329
|
Posted: Mon Jan 21, 2013 10:03 pm Post subject: |
|
|
Dale al emerge gcc.
a ver si se arregla.
ah y tambien prueba con el revdep-rebuild _________________ Si algo falla LEE el jodido manual, Si sigue fallando LEE BIEN el jodido manual. |
|
Back to top |
|
|
Yczo Apprentice
Joined: 09 Jul 2011 Posts: 225
|
Posted: Mon Jan 21, 2013 10:17 pm Post subject: |
|
|
lamentablemente ya lo hice y no hizo efecto, pero gracias cameta |
|
Back to top |
|
|
esteban_conde Veteran
Joined: 04 Jun 2003 Posts: 1670
|
Posted: Tue Jan 22, 2013 11:06 am Post subject: |
|
|
echo $PATH
Como root y como usuario, observa si como usuario tienes :/usr/bin pues creo que ese es el error que te dice en:
gcc-config: error: could not run/locate 'gcc'
echo $PATH wrote: | esteban@mimaquina ~ $ echo $PATH
/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/armv7a-unknown-linux-gnu/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/armv7a-unknown-linux-gnueabi/gcc-bin/4.7.2:/usr/qt/3/bin:/usr/lib64/subversion/bin:/usr/games/bin:/home/esteban/Desktop/android/android-sdk-linux/platform-tools:/home/esteban/Desktop/android/android-sdk-linux/tools
|
_________________ Saludos a tod@s, Esteban. |
|
Back to top |
|
|
Yczo Apprentice
Joined: 09 Jul 2011 Posts: 225
|
Posted: Wed Jan 23, 2013 9:42 am Post subject: |
|
|
Hola Esteban. Gracias por la idea.
la verdad es que no entiendo nada
como usuario:
Code: |
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3:/usr/x86_64-pc-linux-gnu/avr/gcc-bin/4.4.5:/usr/lib64/opencascade-6.5/ros/lin/bin:/opt/android-sdk-update-manager/tools:/opt/android-sdk-update-manager/platform-tools:/usr/games/bin
|
como root
Code: |
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
|
Saludos! |
|
Back to top |
|
|
esteban_conde Veteran
Joined: 04 Jun 2003 Posts: 1670
|
Posted: Wed Jan 23, 2013 9:53 am Post subject: |
|
|
Verifica que en /etc/fstab no tengas puesto user en las opciones de montaje de /home ó /
man mount wrote: | Normalmente, solo el superusuario puede montar sistemas de
ficheros. Sin embargo, cuando fstab contiene la opcion user en una
linea, entonces cualquiera puede montar el distema de ficheros corre-
spondiente.
Asi, dada la linea
/dev/cdrom /cdrom iso9660 ro,user,noauto,unhide
cualquier usuario puede montar el sistema de ficheros de tipo iso9660
encontrado en su CD-ROM mediante la orden
|
Ese es un extracto de man mount, repito si tienes puesto user como opcion en fstab quitalo y remonta la particion o reinicia, seguramente luego podrás compilar como user en un directorio que tengas permisos de escritura. _________________ Saludos a tod@s, Esteban. |
|
Back to top |
|
|
Yczo Apprentice
Joined: 09 Jul 2011 Posts: 225
|
Posted: Wed Jan 23, 2013 10:17 am Post subject: |
|
|
esto es todo lo que tengo en fstab:
Code: |
/dev/sda1 / ext4 noatime,nodiratime 0 1
/dev/sda2 /home ext4 noatime,nodiratime 0 2
tmpfs /var/log tmpfs size=300M 0 0
tmpfs /tmp tmpfs size=7100M 0
proc /proc proc defaults 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
/dev/sr0 /media/cdrom auto noauto,ro,user 0 0
enigma:/home/enigma/Archivos /home/enigma/Archivos/Multimedia/Red-Poco/ nfs nolock,rw,user,noauto,sync,hard,intr 0 0
enigma:/Archivos /home/enigma/Archivos/Multimedia/Red-Mucho/ nfs nolock,rw,user,noauto,sync,hard,intr 0 0
|
Tengo el user en una unidad de red que se monta sobre el home
EDITO:
tampoco parece asunto de permisos de directorio
Code: |
# mkdir /prueba
# chown -R enigma:enigma /prueba
# chmod -R 777 /prueba
# exit
$ cd /prueba/
$ gcc
gcc-config: error: could not run/locate 'gcc'
|
Un saludo y gracias. |
|
Back to top |
|
|
cameta Veteran
Joined: 04 Aug 2004 Posts: 1329
|
Posted: Wed Jan 23, 2013 11:45 am Post subject: |
|
|
Hola
como usuario ejecuta estos comandos
gcc -v
gcc-config -l
yo estoy seguro que pasa algo con los profiles
esos dos astericos.... _________________ Si algo falla LEE el jodido manual, Si sigue fallando LEE BIEN el jodido manual. |
|
Back to top |
|
|
esteban_conde Veteran
Joined: 04 Jun 2003 Posts: 1670
|
Posted: Wed Jan 23, 2013 12:10 pm Post subject: |
|
|
Sin descartar lo que te dice cameta y por supuesto una accion por vez para saber donde está el error debes borrar user de:
Quote: | enigma:/home/enigma/Archivos /home/enigma/Archivos/Multimedia/Red-Poco/ nfs nolock,rw,user,noauto,sync,hard,intr 0 0
enigma:/Archivos /home/enigma/Archivos/Multimedia/Red-Mucho/ nfs nolock,rw,user,noauto,sync,hard,intr 0 0 | y dejarlo así:
enigma:/home/enigma/Archivos /home/enigma/Archivos/Multimedia/Red-Poco/ nfs nolock,rw,noauto,sync,hard,intr 0 0
enigma:/Archivos /home/enigma/Archivos/Multimedia/Red-Mucho/ nfs nolock,rw,noauto,sync,hard,intr 0 0
Observa que he eliminado la palabra user de esas dos líneas.
Luego reinicia. _________________ Saludos a tod@s, Esteban. |
|
Back to top |
|
|
gringo Advocate
Joined: 27 Apr 2003 Posts: 3793
|
Posted: Wed Jan 23, 2013 12:14 pm Post subject: |
|
|
mmm, que raro, acabo de probar en mi gentoo y no tengo problema para compilar. He probado con el wrapper gcc y con x86_64-pc-linux-gnu-gcc con idéntico resultado.
has probado creando otro usuario para saber si es un problema del sistema o del entorno de ese usuario en concreto ?
los asteriscos creo que no tienen nada que ver, uno indica el compilador cruzado seleccionado y el otro indica el compilador del sistema.
saluetes |
|
Back to top |
|
|
cameta Veteran
Joined: 04 Aug 2004 Posts: 1329
|
Posted: Wed Jan 23, 2013 12:37 pm Post subject: |
|
|
Yo si lo anterior no funciona probaria con esto:
1º Eliminar el avr-4.4.5 co
2º http://www.gentoo.org/doc/en/gcc-upgrading.xml
hacer lo que dice aquí:
# emerge -u gcc
# gcc-config -l
[1] i686-pc-linux-gnu-4.4.5 *
[2] i686-pc-linux-gnu-4.5.3
# gcc-config 2
# env-update && source /etc/profile (esto creo que es bastante mportante cuando cambias de gcc)
# emerge --oneshot libtool
Y mira el final
Which packages are known to need a rebuild?
The following table gives the packages that, if installed, need to be rebuild and why.
Package Rebuild needed because ...
sys-devel/libtool libtool application has hardcoded paths towards GCC internal libraries
dev-lang/ghc ghc application has hardcoded paths towards GCC internal libraries
reemerger paquetes como el ghc puede ser una buena idea. _________________ Si algo falla LEE el jodido manual, Si sigue fallando LEE BIEN el jodido manual. |
|
Back to top |
|
|
esteban_conde Veteran
Joined: 04 Jun 2003 Posts: 1670
|
Posted: Wed Jan 23, 2013 2:36 pm Post subject: |
|
|
Pues opino que gcc-config funciona igual para root que para cualquier usuario, es decir si ejecutas gcc-config set X donde X = nº de lista que arroja gcc-config, esto afecta por igual al user root que a cualquier otro y lo que Yczo dice es que puede compilar como root no como user normal. _________________ Saludos a tod@s, Esteban. |
|
Back to top |
|
|
cameta Veteran
Joined: 04 Aug 2004 Posts: 1329
|
Posted: Wed Jan 23, 2013 5:04 pm Post subject: |
|
|
gcc-config como usuario normal sólo te da la lista de los diferentes gcc. Si intentas cambiar de profile como usuario normal te dirá que gcc-config: need write access to. Algo por otra parte lógico. _________________ Si algo falla LEE el jodido manual, Si sigue fallando LEE BIEN el jodido manual. |
|
Back to top |
|
|
esteban_conde Veteran
Joined: 04 Jun 2003 Posts: 1670
|
Posted: Wed Jan 23, 2013 5:20 pm Post subject: |
|
|
cameta wrote: | gcc-config como usuario normal sólo te da la lista de los diferentes gcc. Si intentas cambiar de profile como usuario normal te dirá que gcc-config: need write access to. Algo por otra parte lógico. |
Pues por eso mismo si funciona para root deberia funcionar para cualquier usuario, sin embargo el quid creo que está en "noexec " implicito en la opcion "user" que comento en mis ateriores posts.
man mount wrote: | user Permitir a un usuario ordinario montar el sistema de
ficheros. Esta opcion implica las opciones noexec, nosuid
y nodev (a menos que se sustituyan por otras subsigu-
ientes, como en la linea de opciones user,exec,dev,suid).
|
Perdonad el sin sentido de mi otro post en cuanto al ejemplo de man mount:
Quote: | man mount escribió:
Normalmente, solo el superusuario puede montar sistemas de
ficheros. Sin embargo, cuando fstab contiene la opcion user en una
linea, entonces cualquiera puede montar el distema de ficheros corre-
spondiente.
Asi, dada la linea
/dev/cdrom /cdrom iso9660 ro,user,noauto,unhide
cualquier usuario puede montar el sistema de ficheros de tipo iso9660
encontrado en su CD-ROM mediante la orde |
lo cual no viene al caso. _________________ Saludos a tod@s, Esteban. |
|
Back to top |
|
|
opotonil l33t
Joined: 17 Jun 2005 Posts: 801 Location: 127.0.0.1
|
Posted: Wed Jan 23, 2013 7:39 pm Post subject: |
|
|
Yo tambien tengo seleccinado un compilador cruzado:
Code: |
$ gcc-config -l
[1] avr-4.7.2 * (Asterisco azul)
[2] x86_64-pc-linux-gnu-4.6.3 * (Asterisco verde)
|
Me funciona sin problemas la compilacion como usuario:
Code: |
$ gcc -o HelloWorld main.c
$ ./HelloWorld
Hello World
|
Mi fstab no tiene opciones especiales:
Code: |
/dev/sda1 /boot ext2 noatime,noauto 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext4 noatime 0 1
/dev/vg/portage /usr/portage ext2 noatime 0 1
/dev/vg/distfiles /usr/portage/distfiles ext2 noatime 0 1
/dev/vg/src /usr/src ext2 noatime 0 1
/dev/vg/var /var ext4 noatime 0 1
/dev/vg/tmp /var/tmp ext2 noatime 0 1
/dev/vg/home /home ext4 noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
#/dev/fd0 /mnt/floppy auto noauto 0 0
shm /dev/shm tmpfs nodev,noexec,nosuid 0 0
|
Los grupos a los que pertenece mi usuario:
Code: |
$ groups
lp wheel floppy uucp audio cdrom video usb users kvm plugdev android (usuario)
|
Si no recuerdo mal actualice "gcc" el viernes pasado y tras la actualizacion y seleccion del nuevo "gcc" ejecute "fix_libtool_files.sh". No se me ocurre nada que mirar, si quereis que compruebe algo a ver si esta distinto en mi sistema comentarme.
Un salu2. _________________ Localnet
Films Localnet |
|
Back to top |
|
|
i92guboj Bodhisattva
Joined: 30 Nov 2004 Posts: 10315 Location: Córdoba (Spain)
|
Posted: Fri Feb 01, 2013 3:19 pm Post subject: |
|
|
No he leído el hilo completo, pero veo que tienes un ambiente de compilación cruzada. Si usas tu bashrc, o cualquier otro fichero de inicialización de shell para fijar variables relacionadas con eso, prueba a moverlos con otro nombre, cierra y vuelve a abrir tu shell, y comprueba si cambia algo.
El comando 'which' te ayudará a saber exáctamente que 'gcc' estás corriendo como root y como user; si no es el mismo.... Siempre cabe la posibilidad de que hayas puesto algún wrapper en ~/bin/gcc o algo por el estilo y luego lo hayas olvidado. Si el problema es de permisos, tendrás que ver los permisos, grupo y propietario de los binarios de gcc, no del symlink (esos siempre van a ser 777). Esto se ve con 'ls -l', y tambien los de cada directorio que haya en el path hacia el binario en cuestión 'ls -ld'
Si no, quizás debas instalar strace y usarlo para ejecutar gcc. La salida hablará por si sola en la mayoría de casos.
[Editados para arreglar faltas de ortografía.]
Last edited by i92guboj on Sat Feb 02, 2013 10:21 am; edited 1 time in total |
|
Back to top |
|
|
quilosaq Veteran
Joined: 22 Dec 2009 Posts: 1524
|
Posted: Fri Feb 01, 2013 11:56 pm Post subject: Re: imposible compilar practicas en C como usuario |
|
|
Yczo wrote: |
...si como root listo los permisos de los destinos de esos enlaces simbolicos, tomare uno solo por poner el ejemplo
Code: |
ls -l /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gc*
-rwxr-xr-x 1 root root 340912 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc
lrwxrwxrwx 1 root root 23 ene 13 03:38 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc-4.6.3 -> x86_64-pc-linux-gnu-gcc
-rwxr-xr-x 1 root root 353240 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcj
-rwxr-xr-x 1 root root 6080 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcjh
-rwxr-xr-x 1 root root 35152 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcov
|
como veis, todos tienen permisos de lectura y ejecución para todos los usuarios...
|
Comprueba los permisos en estos directorios:
Code: | /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3
/usr/x86_64-pc-linux-gnu/gcc-bin
/usr/x86_64-pc-linux-gnu |
|
|
Back to top |
|
|
esteban_conde Veteran
Joined: 04 Jun 2003 Posts: 1670
|
Posted: Sat Feb 02, 2013 7:35 pm Post subject: |
|
|
¿nadie ha hecho la prueba de poner añadir user a las opciones del punto de montaje donde se guardan los ejecutables del sistema? ... eso si no pongais muy lejos un liveCD. _________________ Saludos a tod@s, Esteban. |
|
Back to top |
|
|
Yczo Apprentice
Joined: 09 Jul 2011 Posts: 225
|
Posted: Tue Feb 12, 2013 5:29 pm Post subject: un paso mas |
|
|
Hola chicos, en primer lugar muchas gracias por vuestra ayuda.
Veréis siguiendo vuestros consejos, para curarme en salud, he comentado todas las lineas con user en fstab, luego he instalado strace y he revisado los permisos de los directorios. He conseguido algún progreso parcial pero todavía no logro compilar aquí os muestro el resultado a ver si ya podemos vislumbrar la solución.
En primer lugar al revisar los permisos de la estructura de directorios encontré lo siguiente (descendiendo en la estructura de /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3 omo me aconsejasteis).
Code: |
$ ls -ld /usr/x86_64-pc-linux-gnu/gcc-bin
drwxr-x--- 4 root root 4096 ene 9 2009 /usr/x86_64-pc-linux-gnu/gcc-bin
|
Tras corregir los permisos
Code: |
chmod -R 755 /usr/x86_64-pc-linux-gnu/gcc-bin
ls -l /usr/x86_64-pc-linux-gnu/
total 20
drwxr-xr-x 13 root root 4096 ene 9 2009 avr
drwxrwx--- 2 root root 4096 ene 9 2009 bin
drwxrwx--- 3 root root 4096 ene 9 2009 binutils-bin
drwxrwxr-x 3 root root 4096 ene 13 11:13 gcc-bin
drwxrwx--- 2 root root 4096 ene 9 2009 lib
|
Por fin tengo acceso al gcc como usuario!, Pero todavía no puedo compilar
Quote: |
$ gcc prueba.c -o prueba.sh
gcc: error trying to exec 'as': execvp: Permiso denegado
|
Me falta permiso de acceso a no se que y no se donde darlo.
A continuación hago un strace
Code: |
$ strace gcc prueba.c -o prueba.sh
execve("/usr/bin/gcc", ["gcc", "prueba.c", "-o", "prueba.sh"], [/* 90 vars */]) = 0
brk(0) = 0x2484000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff93ff93000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=241183, ...}) = 0
mmap(NULL, 241183, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff93ff58000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320%\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1728728, ...}) = 0
mmap(NULL, 3841312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff93f9c9000
mprotect(0x7ff93fb6a000, 2093056, PROT_NONE) = 0
mmap(0x7ff93fd69000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a0000) = 0x7ff93fd69000
mmap(0x7ff93fd6f000, 15648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff93fd6f000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff93ff57000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff93ff56000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff93ff55000
arch_prctl(ARCH_SET_FS, 0x7ff93ff56700) = 0
mprotect(0x7ff93fd69000, 16384, PROT_READ) = 0
mprotect(0x601000, 4096, PROT_READ) = 0
mprotect(0x7ff93ff94000, 4096, PROT_READ) = 0
munmap(0x7ff93ff58000, 241183) = 0
brk(0) = 0x2484000
brk(0x24a5000) = 0x24a5000
stat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", {st_mode=S_IFREG|0775, st_size=340912, ...}) = 0
execve("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", ["/usr/x86_64-pc-linux-gnu/gcc-bin"..., "prueba.c", "-o", "prueba.sh"], [/* 90 vars */]) = 0
brk(0) = 0xc93000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f147071b000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=241183, ...}) = 0
mmap(NULL, 241183, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f14706e0000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320%\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1728728, ...}) = 0
mmap(NULL, 3841312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1470151000
mprotect(0x7f14702f2000, 2093056, PROT_NONE) = 0
mmap(0x7f14704f1000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a0000) = 0x7f14704f1000
mmap(0x7f14704f7000, 15648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f14704f7000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f14706df000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f14706de000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f14706dd000
arch_prctl(ARCH_SET_FS, 0x7f14706de700) = 0
mprotect(0x7f14704f1000, 16384, PROT_READ) = 0
mprotect(0x651000, 4096, PROT_READ) = 0
mprotect(0x7f147071c000, 4096, PROT_READ) = 0
munmap(0x7f14706e0000, 241183) = 0
brk(0) = 0xc93000
brk(0xcb4000) = 0xcb4000
open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1853616, ...}) = 0
mmap(NULL, 1853616, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f146ff8c000
close(3) = 0
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fcntl(3, F_GETFD) = 0x1 (flags FD_CLOEXEC)
fstat(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f147071a000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2570
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f147071a000, 4096) = 0
open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es_ES.UTF-8/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es_ES.utf8/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es_ES/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es.UTF-8/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es.utf8/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es/LC_MESSAGES/gcc.mo", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1110910, ...}) = 0
mmap(NULL, 1110910, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f14705cd000
close(3) = 0
open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=26244, ...}) = 0
mmap(NULL, 26244, PROT_READ, MAP_SHARED, 3, 0) = 0x7f1470714000
close(3) = 0
open("/usr/lib64/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\5\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10096, ...}) = 0
mmap(NULL, 2105392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f146fd89000
mprotect(0x7f146fd8b000, 2093056, PROT_NONE) = 0
mmap(0x7f146ff8a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f146ff8a000
close(3) = 0
mprotect(0x7f146ff8a000, 4096, PROT_READ) = 0
rt_sigaction(SIGINT, {SIG_IGN, [INT], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0x407770, [INT], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_IGN, [INT], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, 8) = 0
rt_sigaction(SIGHUP, {SIG_IGN, [HUP], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {0x407770, [HUP], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_IGN, [HUP], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, 8) = 0
rt_sigaction(SIGTERM, {SIG_IGN, [TERM], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0x407770, [TERM], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_IGN, [TERM], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPIPE, {0x407770, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL, [CHLD], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0
brk(0xcd5000) = 0xcd5000
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/x86_64-pc-linux-gnu", {st_mode=S_IFDIR|0770, st_size=4096, ...}) = 0
lstat("/usr/x86_64-pc-linux-gnu/gcc-bin", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", {st_mode=S_IFLNK|0777, st_size=23, ...}) = 0
readlink("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", "x86_64-pc-linux-gnu-gcc", 4095) = 23
lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc", {st_mode=S_IFREG|0775, st_size=340912, ...}) = 0
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/x86_64-pc-linux-gnu", {st_mode=S_IFDIR|0770, st_size=4096, ...}) = 0
lstat("/usr/x86_64-pc-linux-gnu/gcc-bin", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", {st_mode=S_IFLNK|0777, st_size=23, ...}) = 0
readlink("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", "x86_64-pc-linux-gnu-gcc", 4095) = 23
lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc", {st_mode=S_IFREG|0775, st_size=340912, ...}) = 0
access("prueba.c", F_OK) = 0
access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/", X_OK) = 0
access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/", X_OK) = 0
access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/specs", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/4.6.3/specs", R_OK) = -1 EACCES (Permission denied)
access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/lib/specs", R_OK) = -1 EACCES (Permission denied)
access("/usr/lib/gcc/x86_64-pc-linux-gnu/specs", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/", X_OK) = 0
stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/lto-wrapper", {st_mode=S_IFREG|0755, st_size=35416, ...}) = 0
access("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/lto-wrapper", X_OK) = 0
access("/tmp", R_OK|W_OK|X_OK) = 0
getpid() = 8248
open("/tmp/ccqdVFKw.s", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
close(3) = 0
stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1", {st_mode=S_IFREG|0755, st_size=11109440, ...}) = 0
access("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1", X_OK) = 0
vfork() = 8249
wait4(8249, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 8249
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8249, si_status=0, si_utime=1, si_stime=0} ---
open("/tmp/cc6spmuB.o", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
close(3) = 0
stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)
stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)
stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)
stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)
stat("/usr/lib/gcc/x86_64-pc-linux-gnu/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)
stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 EACCES (Permission denied)
stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/as", 0x7fff4ea5d2a0) = -1 EACCES (Permission denied)
vfork(gcc: error trying to exec 'as': execvp: Permiso denegado
) = 8250
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8250, si_status=255, si_utime=0, si_stime=0} ---
wait4(8250, [{WIFEXITED(s) && WEXITSTATUS(s) == 255}], 0, NULL) = 8250
stat("/tmp/cc6spmuB.o", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
unlink("/tmp/cc6spmuB.o") = 0
stat("/tmp/cc6spmuB.o", 0x7fff4ea5d490) = -1 ENOENT (No such file or directory)
stat("/tmp/ccqdVFKw.s", {st_mode=S_IFREG|0600, st_size=478, ...}) = 0
unlink("/tmp/ccqdVFKw.s") = 0
exit_group(1) = ?
+++ exited with 1 +++
|
He tratado de dar permisos 755 a /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3, pero no me ha servido de nada
Atascado de nuevo!
¿Que pensaís? Gracias de antemano.
Saludos cordiales |
|
Back to top |
|
|
quilosaq Veteran
Joined: 22 Dec 2009 Posts: 1524
|
Posted: Tue Feb 12, 2013 6:31 pm Post subject: Re: un paso mas |
|
|
Yczo wrote: | ...
stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 EACCES (Permission denied)
stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/as", 0x7fff4ea5d2a0) = -1 EACCES (Permission denied)
... |
Prueba Code: | # chmod -R 777 /usr/x86_64-pc-linux-gnu/bin/ |
Creo que tu instalación de gcc esta corrupta. Reinstala gcc. |
|
Back to top |
|
|
Yczo Apprentice
Joined: 09 Jul 2011 Posts: 225
|
Posted: Tue Feb 12, 2013 7:28 pm Post subject: |
|
|
Solucionado!!! Eres un hacha quilosaq!! Pero ademas tuve que hacerselo también a binutils-bin, esto lo hice por intuición después de leer en algún post que el error marcado por strace tenía que ver con binutils y observar que mis permisos en binutils-bin eran 750
Code: |
chmod -R 775 /usr/x86_64-pc-linux-gnu/bin
chmod -R 775 /usr/x86_64-pc-linux-gnu/binutils-bin
|
Claro yo no se mucho del por que, si alguien se animara a explicar un poco por que pasaba esto o linkar un documento donde explique, estaría muy bien
Muchisimas gracias a todos!. quilosaq, no sabes lo feliz que me has hecho. Esto lo arrastraba desde hace un año y medio
Saludos! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|