Pip: непоследовательные проблемы с разрешениями

При установке пакета через sudo pip-python (пакет CentOS 6: python-pip-0.8-1.el6.noarch) иногда возникают проблемы с правами доступа к установленным пакетам, доступным только для root.

Повторная установка снова один или два раза обычно устраняет проблему. Кто-нибудь испытал это? Или кто-нибудь может предложить какие-либо шаги по устранению неполадок, чтобы устранить причину?

Ответ 1

Когда вы запустите команду с помощью sudo, она сохранит пользователей umask. pip просто устанавливает файлы, он не изменяет права доступа, поэтому вы получите файлы, имеющие права доступа, соответствующие текущему пользователю umask, который может быть доступен только для чтения (0077) и поэтому читается только root.

Это означает, что перед запуском sudo pip install вы можете установить umask на что-то разумное, например umask 0022. Или используйте sudo su, чтобы открыть корневую оболочку с настройками по умолчанию, а затем pip install.

Ответ 2

Если вы используете pud с sudo, вам может понадобиться флаг sudo -H

-H, --set-home задает переменную HOME для целевого пользователя home dir

например

sudo -H pip install virtualenv