2012-06-22 20 views
11

Podczas instalowania pakietu przez sudo pip-python (pakiet CentOS 6: python-pip-0.8-1.el6.noarch), czasami dostaję problemy z uprawnieniami, a zainstalowane pakiety mogą być odczytywane tylko przez root.pip: niespójne problemy z uprawnieniami

Ponowna instalacja raz lub dwa razy zwykle rozwiązuje problem. Czy ktoś tego doświadczył? Czy ktoś może zaproponować jakieś kroki rozwiązywania problemów, aby ustalić przyczynę?

Odpowiedz

10

Po uruchomieniu polecenia przy użyciu numeru sudo użytkownik zachowa użytkowników umask. pip po prostu instaluje pliki, nie zmienia praw dostępu, więc skończysz z plikami o ustawieniach dostępu zgodnych z umask bieżącego użytkownika, które mogą być tylko czytelne dla właściciela (0077), a zatem możliwe do odczytania tylko przez root .

Oznacza to, że można ustawić umask na coś sensownego, np. umask 0022 przed uruchomieniem sudo pip install. Lub użyj sudo su, aby otworzyć powłokę główną z domyślnymi ustawieniami, a następnie pip install.

+0

Początkowo, kiedy jeden z naszych pracowników to zgłosił, myślałem o tym samym. Jednak zdarzyło mi się to już kilka razy, gdy najpierw ustawia restrykcyjne uprawnienia, ale potem, gdy uruchomię go ponownie, nie zmieniając niczego, działa dobrze. –

+0

Hm, to naprawdę wydaje się dziwne, szczególnie "bez zmiany czegokolwiek". Widziałem ten problem tylko przy uruchamianiu pip przez sudo, teraz zawsze uruchamiam pip z powłoki głównej z odpowiednią umask, od tego mi się to nie zdarzyło. Nie wiem, co się tutaj dzieje ... – mata

+0

Możesz także uruchomić sudo bash, następnie umask 0022, a następnie zainstalować pip – mabraham

0

Jeśli wykonujący PIP z sudo, można -H flagę sudo za

-H, --set-home zestaw HOME zmienna kierować użytkownika do domu reż

np

sudo -H pip install virtualenv

Powiązane problemy