Подтвердить что ты не робот

Обновление python без нарушения yum

Недавно я установил Python 2.7.3 на машину CentOS, скомпилировав исходный код. Python 2.7.3 установлен на /opt/python 2.7, и когда я его установил, я просто изменил /usr/bin/python, чтобы указать на новую версию. Это, по-видимому, неправильно, потому что, когда я это сделал, он сломал yum. Я бы получил следующее.

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum

Please install a package which provides this module, or
verify that the module is installed correctly.

It possible that the above module doesn't match the
current version of Python, which is:
2.7.3 (default, May 15 2012, 17:45:42) 
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

Я изменил /usr/bin/python, чтобы указать на python 2.6.6, но теперь 2.6.6 является версией python по умолчанию. Любая идея, как это исправить?

4b9b3361

Ответ 1

Я написал краткое руководство о том, как установить последние версии Python 2 и Python 3 на CentOS 6 и CentOS 7. В настоящее время охватывает Python 2.7.13 и Python 3.6.0.

Вы не должны изменять системную версию Python, потому что она сломает систему (как вы узнали). Установка других версий работает нормально, если вы оставите исходную версию системы в одиночку. Это можно сделать с помощью пользовательского префикса (например, /usr/local) при запуске configure и с помощью make altinstall (вместо обычного make install) при установке вашей сборки Python.

Наличие нескольких версий доступного Python обычно не является большой проблемой, если вы не забыли ввести полное имя, включая номер версии (например, "python2.7" или "pip2.7" ). Если вы выполняете всю свою работу на Python из virtualenv, управление версиями выполняется для вас, поэтому убедитесь, что вы устанавливаете и используете virtualenv!

Ответ 2

vim `which yum`
modify #/usr/bin/python to #/usr/bin/python2.4

Ответ 3

Поместите /opt/python2.7/bin в переменную окружения PATH перед /usr/bin... или просто привыкнем к вводу python2.7.

Ответ 4

pythonz, активная вилка pythonbrew, делает этот ветер. Вы можете установить версию с помощью:

# pythonz install 2.7.3

Затем установите символическую ссылку:

# ln -s /usr/local/pythonz/pythons/CPython-2.7.3/bin/python2.7 /usr/local/bin/python2.7
# python2.7 --version
Python 2.7.3

Ответ 5

ln -s /usr/local/bin/python2.7 /usr/bin/python

Ответ 6

Если вы хотите попробовать rpm-пакеты, вы можете установить бинарные пакеты, основанные на новейших версиях Fedora, но перекомпилированные для RHEL6/CentOS6/ScientificLinux-6:

http://www.jur-linux.org/download/el-updates/6/

С наилучшими пожеланиями,

Флориан Ла Рош

Ответ 7

Я рекомендую вместо этого обновлять путь в связанных script (s) (например,/usr/bin/yum), чтобы указать на предыдущий Python в качестве интерпретатора.

В идеале вы хотите обновить yum и связанные с ним сценарии, чтобы они поддерживаются установленным по умолчанию Python.

Если это невозможно, вышесказанное полностью работоспособно и проверено.

Изменить:

#!/usr/bin/python

каков бы ни был путь вашей старой версии, пока вы не сможете сделать выше yum улучшения.

Случаи, в которых вы не могли бы сделать выше, - это если у вас изолированная машина, не имеют времени для обновления rpm вручную или не могут временно подключиться или постоянно в стандартный репозиторий yum.