2012-06-22 21 views
11

Al instalar un paquete a través de sudo pip-python (paquete CentOS 6: python-pip-0.8-1.el6.noarch), a veces obtengo problemas de permisos con los paquetes instalados que solo se pueden leer por root.pip: problemas de permisos inconsistentes

volver a instalar de nuevo una o dos veces por lo general soluciona el problema. Alguien ha experimentado esto? ¿O alguien puede sugerir algún paso de solución de problemas para determinar la causa?

Respuesta

10

Cuando ejecuta un comando usando sudo, preservará los usuarios umask. pip solo instala archivos, no cambia los derechos de acceso, por lo que terminará con los archivos con los derechos de acceso ajustados al umask actual del usuario, que solo puede ser leído por el propietario (0077) y, por lo tanto, solo se puede leer por root .

Eso significa que puede establecer umask en algo sensible como umask 0022 antes de ejecutar sudo pip install. O use sudo su para abrir un shell raíz con la configuración predeterminada y luego pip install.

+0

Inicialmente, cuando uno de los miembros de nuestro personal informó esto, pensé lo mismo. Sin embargo, ahora me ha sucedido un par de veces que establece permisos restrictivos primero, pero luego, cuando lo ejecuto de nuevo sin cambiar nada, funciona bien. –

+0

Hm, eso realmente parece extraño, especialmente la parte 'sin cambiar nada'. Solo he visto este problema al ejecutar pip a través de sudo, ahora siempre ejecuto pip desde el shell raíz con una umask adecuada, y eso no me ha sucedido desde entonces. No sé qué está pasando aquí ... – mata

+0

También puede ejecutar sudo bash, luego umask 0022, luego instalar pip – mabraham

0

Si la ejecución de la pipa con sudo, es posible que desee bandera de -H sudo

-H, -set-casa conjunto INICIO variable para dirigirse a casa de dir usuario

por ejemplo

sudo -H pip install virtualenv

Cuestiones relacionadas