Tengo una pregunta muy molesta sobre la construcción a partir de fuentes. He buscado una respuesta durante mucho tiempo y en ninguna parte puedo encontrarla ... He compilado software de fuentes antes y esto me desconcertó.
Así que estoy tratando de instalar Python 2.7.2 desde las fuentes. Puedo hacer un éxito ./configure
, también make
parece funcionar bien. Pero cuando lo hago sudo make install
, obtengo 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.
Entonces 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 una 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 algo de progreso ... ¿Qué está pasando aquí? Parece un problema de permiso. Supuse que sudo sería la solución, pero claramente hay algo más aquí ... Lo intenté sudo -s
pero vuelvo a tener esos problemas de permisos ...
Estoy usando Ubuntu 10.04LTS.
fuente
Respuestas:
Creo que lo que estás golpeando es en realidad una política 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 a la raíz local no permite que un usuario ejecute bruscamente sobre ningún volumen NFS montado y acceda / modifique los archivos de otros usuarios: el servidor NFS asignará el uid de la raíz de 0 a 65534 (
nobody
), por lo que puede ni siquiera enumere el directorio en su ejemplo.Entonces, eso te deja con un par de opciones:
nobody
en su compilación haciendo unchmod -R o+rw .
directorio en el nivel superior, otorgando a "otros" permisos de lectura / escritura en sus archivos (puede o no ser suficiente; por ejemplo, puede necesitaro+x
directorios si necesita buscarlos)./etc/exports
archivo del servidor NFS , puede deshabilitar el squash raíz (quizás no sea una buena idea)./usr/local/src
,/usr/src
,/tmp
etc, o simplemente crear su propio directorio local (que incluso puede hacer que sea propiedad de su usuario) desea/scratch/myuser
. Esta es probablemente la opción que causa la menor cantidad de dolores de cabeza.fuente
~/downloads/ruby-2.4.0
../configure, make
funcionó, perosudo make install
dio error::~/downloads/ruby-2.4.0$ sudo make install 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
instalar '. Detener. `` ``. Ejecuté los pasos anteriores copiando los archivos de origen a / tmp ysudo make install
funcionó bien./usr/local/src, /usr/src
no funcionó debido a errores de permisoIntenta compartirlo con tu 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.
fuente
Si está usando sshfs, monte usando la
-o allow_other
opciónantes de eso tienes que configurar
user_allow_other
en /etc/fuse.conffuente