Root shell widzi pip, ale sudo pip „nie znaleziono polecenia”


12

Mam zainstalowany Python 2.7.8 przez makea make install, a następnie pip poprzez get-pip . Muszę zauważyć, że pracuję za serwerem proxy, który utworzyłem

  • http_proxy
  • ftp_proxy
  • https_proxy

w

  • mój użytkownik ~/.zshrc
  • root /root/.basrc

teraz mogę biegać pip

  • na moim koncie użytkownika
  • na koncie root

ale nie jestem w stanie uruchomić go za pomocą powłoki użytkownika za pomocą sudo

sudo pip
sudo: pip: command not found

Co tu jest nie tak?

Odpowiedzi:


18

Stanie się tak, ponieważ PATHdziała inaczejsudo . Spróbuj porównać:

which pip
env

vs.

sudo which pip
sudo env

Jednym bezpiecznym obejściem jest utworzenie dowiązania symbolicznego do pipw /usr/local/binlub nawet /usr/bin. Jeśli instalujesz pipprzy użyciu menedżera pakietów, zrobi to automatycznie na kilku (większości?) Dystrybucjach.


6
dzięki, alias sudo='sudo env PATH=$PATH'rozwiązałem problem.
Patryk

Są z tym problemy bezpieczeństwa - nie chcesz tego ślepo ustawiać we wszystkich swoich środowiskach!
l0b0,

7
Nie jestem pewien, czy było to bardzo jasne w tej odpowiedzi, ale rozwiązanie jest rzeczywiścieln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.