Корневая оболочка видит пункт, но пункт sudo «команда не найдена»


12

Я установил питон 2.7.8 через makeи , make installа затем пип через Get-пип . Я должен отметить, что я работаю за прокси, который я настроил через

  • http_proxy
  • ftp_proxy
  • https_proxy

в

  • мой пользователь ~/.zshrc
  • корнеплоды /root/.basrc

теперь я могу бегать pip

  • на моей учетной записи
  • на корневом аккаунте

но я не могу запустить его через оболочку моего пользователя с помощью sudo

sudo pip
sudo: pip: command not found

Что здесь не так?

Ответы:


18

Это будет потому, что PATHотличается при работе сsudo . Попробуйте сравнить:

which pip
env

против

sudo which pip
sudo env

Один безопасный обходной путь - это создать символическую ссылку на pipin /usr/local/binили даже /usr/bin. Если вы устанавливаете pipс помощью менеджера пакетов, он будет делать это автоматически на нескольких (большинстве?) Дистрибутивах.


6
спасибо, alias sudo='sudo env PATH=$PATH'решил проблему.
Патрик

С этим связаны проблемы безопасности - вы не хотите слепо устанавливать это во всех своих средах!
10

7
Я не уверен, было ли это очень ясно в этом ответе, но решение действительноln -s /usr/local/bin/<stuff> /usr/bin/<stuff>
JulienD
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.