
Tengo una pregunta muy molesta sobre la construcción a partir de fuentes. He buscado una respuesta durante mucho tiempo y no puedo encontrarla en ninguna parte... He compilado software a partir de fuentes antes y esto simplemente me desconcertó.
Entonces estoy intentando instalar Python 2.7.2 desde las fuentes. Puedo hacerlo con éxito ./configure
y también make
parece funcionar bien. Pero cuando lo hago sudo make install
, aparece una variedad de errores...
Primero sudo make install
me da esto:
make: stat: GNUmakefile: Permission denied
make: stat: makefile: Permission denied
make: stat: Makefile: Permission denied
make: stat: install: Permission denied
make: *** No rule to make target `install'. Stop.
Así que lo hice chmod +rx Makefile*
. En vano.
Entonces, sudo ls .
dice
ls: cannot access .: Permission denied
Luego ls -d .
dice que los permisos sondrwxr-x---
Entonces, como medida desesperada chmod +rx .
,. Eso me dio:
make: stat: Modules/config.c.in: Permission denied
make: *** No rule to make target `Modules/config.c.in', needed by `Makefile'. Stop.
Entonces algunos avances... ¿Qué está pasando aquí? Parece algún tipo de problema de permisos. Supuse que sudo sería la solución, pero claramente hay algo más sucediendo aquí... Lo intenté sudo -s
pero tengo esos problemas de permisos nuevamente...
Estoy usando Ubuntu 10.04LTS.
Respuesta1
Creo que lo que estás alcanzando es en realidad una política de NFS llamada "root squash". No es raro que los usuarios necesiten root en un host en particular, pero no desea que tengan el mismo tipo de privilegios en los volúmenes NFS compartidos. Por lo tanto, otorgar acceso de root local no permite a un usuario ejecutar sin contemplaciones ningún volumen NFS montado y acceder/modificar los archivos de otros usuarios: el servidor NFS asignará el uid de root de 0 a 65534 ( nobody
), por lo que usted puede Ni siquiera incluye el directorio en su ejemplo.
Entonces, eso te deja con un par de opciones:
- Puede intentar hacer que todos los archivos sean accesibles
nobody
en su compilación creando unchmod -R o+rw .
directorio en el nivel superior, otorgando a "otros" permisos de lectura/escritura en sus archivos (puede que sea suficiente o no; por ejemplo, es posible que necesiteo+x
directorios si necesita buscarlos). - Si tiene acceso al
/etc/exports
archivo del servidor NFS, puede desactivar el root squash (quizás no sea una buena idea). - Simplemente cree un directorio local como
/usr/local/src
,/usr/src
,/tmp
etc, o simplemente cree su propio directorio local (incluso puede hacerlo propiedad de su usuario) como/scratch/myuser
. Esta es probablemente la opción que menos quebraderos de cabeza da.
Respuesta2
Si está utilizando sshfs, monte usando -o allow_other
la opción
$ sudo sshfs -o allow_other hostfolder localfolder
antes de eso tienes que user_allow_other
configurar/etc/fuse.conf
Respuesta3
Intente entregárselo a su usuario. Es decir, use "sudo chown user ./*" (reemplazando usuario con su nombre de usuario) cuando esté en el directorio y le cambiará el propietario de todos los archivos en el directorio.