В общем, запуск pip
от имени root - никогда - хорошая идея. Вы устанавливаете в свой корень файлы, которые не отслеживаются менеджером пакетов вашего дистрибутива.
Это может звучать не так уж плохо, но в целом это так, потому что вы загромождаете свою систему файлами, которые могут конфликтовать с другими, и что вам, вероятно, будет трудно удалить.
Пип делает правильные вещи, устанавливая себя в масштабе всей системы в /usr/local
. Общее соглашение заключается в том, что менеджером пакетов отслеживается содержимое вне вашего собственного каталога системных каталогов /etc
, /var
и local
.
Менеджер пакетов будет перезаписывать файлы вне этих каталогов без запроса. local
дубликаты системных каталогов, чтобы дать вам возможность устанавливать компоненты в масштабе всей системы, не беспокоясь об этом. Однако, в большинстве случаев, есть лучшие способы сделать это.
Например, лучший способ работы с Python - использовать virtualenv
s. Они предоставляют вам изолированную среду, в которую вы можете активировать и устанавливать компоненты, включая актуальную версию pip.
Вы также можете запустить его как пользователь (без sudo), но вам нужно будет добавить его каталог bin
в ваш $PATH
.
Лучше, если вы оставите /usr/bin/pip
в покое, иначе могут случиться плохие вещи.
Чтобы ответить на ваш вопрос, если вы действительно не можете жить без него в /usr/bin
или в virtualenv, мне грустно говорить, что такой документированной опции для pip не существует. Однако у вас есть два варианта:
- Удалите пакет pip вашего дистрибутива, затем символическую ссылку
/usr/bin/pip
на /usr/local/bin/pip
. Это будет работать, но все равно будет технически установлено в /usr/local
. Кроме того, любая другая программа, которая зависит от пакета pip
вашего дистрибутива, должна быть удалена.
- (очень плохо) Загрузите исходники pip, затем установите его с
sudo python setup.py install --prefix=/usr
. Это поместит его в /usr/bin
, но вы должны чувствовать себя очень плохо из-за того, что сделали это.
Я действительно не могу не подчеркнуть, насколько плоха эта практика.