Kořenový shell vidí pip, ale sudo pip “ příkaz nebyl nalezen ”

Nainstaloval jsem python 2.7.8 přes make a make install a poté pip přes get-pip . Musím poznamenat, že pracuji za proxy serverem, který jsem nastavil pomocí

  • http_proxy
  • ftp_proxy
  • https_proxy

v

  • můj uživatel „s ~/.zshrc
  • root“ s /root/.basrc

teď jsem schopen spustit pip

  • na mém uživatelském účtu
  • na kořenovém účtu

ale nemohu jej spustit přes shell mého uživatele pomocí sudo

sudo pip sudo: pip: command not found 

Co se tady děje?

Odpověď

To bude proto, že PATH se liší, když běží s sudo . Zkuste porovnat:

which pip env 

vs.

sudo which pip sudo env 

Jedním ze zabezpečených řešení je vytvoření symbolický odkaz na pip v /usr/local/bin nebo dokonce /usr/bin. Pokud nainstalujete pip pomocí správce balíčků, provede to automaticky na několika (většinou?) Distribucích.

Komentáře

  • děkuji, alias sudo='sudo env PATH=$PATH' problém vyřešil.
  • Existují bezpečnostní problémy – ' Nechci to slepě nastavit ve všech svých prostředích!
  • Nejsem si jistý, jestli to v této odpovědi bylo super jasné, ale řešení je skutečně ln -s /usr/local/bin/<stuff> /usr/bin/<stuff>

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *