Страницы

Поиск по вопросам

суббота, 11 апреля 2020 г.

Есть два питона, как удалить / удалить ссылки на лишний?

#python #debian

                    
Оригинальный вопрос

Есть питон 2.7.10 поставленный из исходников (compile && make && make install) и
2.7.3, взявшийся хз откуда. Похоже на то, что pip вызываемый из консоли - от одного
питона, а python - от другого. Как удалить одну (желательно, более старую) версию питона
или по крайней мере сделать так, чтобы все ссылки указывали на нее? 

Как вообще могло так получиться, что перезаписались ссылки на python, но не на pip?

Я нуб в линуксе, просьба обьяснять подробно. Заранее спасибо.

Debian
    


Ответы

Ответ 1



скорее всего, python 2.7.3 установлен по зависимостям из репозитория. и удалить его без грубейшего вмешательства в пакетную систему — нельзя. да и ни к чему. что именно запускается при вызове программы python, можно узнать с помощью программы which (вывод приведённых команд может отличаться в вашей системе — выполните их самостоятельно, чтобы узнать точно): $ which python /usr/bin/python в моей системе вообще-то это symlink (из пакета python-minimal), указывающий на /usr/bin/python2.7 (из пакета python2.7-minimal) но в данном случае это несущественно: ведь вы скомпилировали и установили другую версию python-а. установили вы её, скорее всего (потому что действовали «по умолчанию») в каталог /usr/local/bin. а вот под каким именем — это смотрите сами в этом каталоге. вероятно, что-нибудь вроде /usr/local/bin/python2.7. для того, чтобы по имени python выполнялся именно этот бинарник, вам достаточно создать symlink («ссылку-синоним») на него в том же каталоге, но под именем python: $ sudo ln -s python2.7 /usr/local/bin/python в результате выполнения этой команды будет создана «ссылка-синоним» /usr/local/bin/python, указывающая на /usr/local/bin/python2.7. а благодаря тому, что в переменной окружения PATH каталог /usr/local/bin перечислен (по умолчанию) раньше каталога /usr/bin, по имени python будет запускаться именно /usr/local/bin/python, а не /usr/bin/python. проверьте с помощью программы which: $ which python /usr/local/bin/python по поводу программы pip — почти всё то же самое, за исключением того, что, скорее всего, удаление пакета, из которого она установлена (вероятно, python-pip), вряд ли «потянет» за собой удаление ещё множества других пакетов (как в случае попытки удаления пакета, содержащего /usr/bin/python — мне apt-get предложил удалить 114 пакетов). справка в дистрибутивах, основанных на debian gnu/linux (ubuntu, mint и т.д. и т.п.), использующих пакетную систему deb, узнать, какому именно пакету принадлежит тот или иной файл (если, конечно, принадлежит хоть какому-то), можно, например, так: $ dpkg -S /полный/путь/к/файлу

Комментариев нет:

Отправить комментарий