Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
imposible compilar en C como usuario [Solucionado]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
Yczo
Apprentice
Apprentice


Joined: 09 Jul 2011
Posts: 225

PostPosted: Mon Jan 21, 2013 8:08 pm    Post subject: imposible compilar en C como usuario [Solucionado] Reply with quote

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
View user's profile Send private message
cameta
Veteran
Veteran


Joined: 04 Aug 2004
Posts: 1318

PostPosted: Mon Jan 21, 2013 10:03 pm    Post subject: Reply with quote

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
View user's profile Send private message
Yczo
Apprentice
Apprentice


Joined: 09 Jul 2011
Posts: 225

PostPosted: Mon Jan 21, 2013 10:17 pm    Post subject: Reply with quote

lamentablemente ya lo hice y no hizo efecto, pero gracias cameta
Back to top
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1670

PostPosted: Tue Jan 22, 2013 11:06 am    Post subject: Reply with quote

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
View user's profile Send private message
Yczo
Apprentice
Apprentice


Joined: 09 Jul 2011
Posts: 225

PostPosted: Wed Jan 23, 2013 9:42 am    Post subject: Reply with quote

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
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1670

PostPosted: Wed Jan 23, 2013 9:53 am    Post subject: Reply with quote

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
View user's profile Send private message
Yczo
Apprentice
Apprentice


Joined: 09 Jul 2011
Posts: 225

PostPosted: Wed Jan 23, 2013 10:17 am    Post subject: Reply with quote

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
View user's profile Send private message
cameta
Veteran
Veteran


Joined: 04 Aug 2004
Posts: 1318

PostPosted: Wed Jan 23, 2013 11:45 am    Post subject: Reply with quote

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
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1670

PostPosted: Wed Jan 23, 2013 12:10 pm    Post subject: Reply with quote

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
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Wed Jan 23, 2013 12:14 pm    Post subject: Reply with quote

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
View user's profile Send private message
cameta
Veteran
Veteran


Joined: 04 Aug 2004
Posts: 1318

PostPosted: Wed Jan 23, 2013 12:37 pm    Post subject: Reply with quote

Yo si lo anterior no funciona probaria con esto:
1º Eliminar el avr-4.4.5 co
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
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1670

PostPosted: Wed Jan 23, 2013 2:36 pm    Post subject: Reply with quote

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
View user's profile Send private message
cameta
Veteran
Veteran


Joined: 04 Aug 2004
Posts: 1318

PostPosted: Wed Jan 23, 2013 5:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1670

PostPosted: Wed Jan 23, 2013 5:20 pm    Post subject: Reply with quote

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
View user's profile Send private message
opotonil
l33t
l33t


Joined: 17 Jun 2005
Posts: 801
Location: 127.0.0.1

PostPosted: Wed Jan 23, 2013 7:39 pm    Post subject: Reply with quote

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
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Fri Feb 01, 2013 3:19 pm    Post subject: Reply with quote

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
View user's profile Send private message
quilosaq
Veteran
Veteran


Joined: 22 Dec 2009
Posts: 1519

PostPosted: Fri Feb 01, 2013 11:56 pm    Post subject: Re: imposible compilar practicas en C como usuario Reply with quote

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
View user's profile Send private message
esteban_conde
Veteran
Veteran


Joined: 04 Jun 2003
Posts: 1670

PostPosted: Sat Feb 02, 2013 7:35 pm    Post subject: Reply with quote

¿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
View user's profile Send private message
Yczo
Apprentice
Apprentice


Joined: 09 Jul 2011
Posts: 225

PostPosted: Tue Feb 12, 2013 5:29 pm    Post subject: un paso mas Reply with quote

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 :twisted:
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
View user's profile Send private message
quilosaq
Veteran
Veteran


Joined: 22 Dec 2009
Posts: 1519

PostPosted: Tue Feb 12, 2013 6:31 pm    Post subject: Re: un paso mas Reply with quote

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
View user's profile Send private message
Yczo
Apprentice
Apprentice


Joined: 09 Jul 2011
Posts: 225

PostPosted: Tue Feb 12, 2013 7:28 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
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