2009-09-23 5 views
83

У меня есть оболочка, которая запускает CentOS.Установите python 2.6 в CentOS

Для проекта, который я делаю, мне нужен python 2.5+, но centOS довольно зависим от 2.4.

Из того, что я прочитал, некоторые вещи сломаются, если вы перейдете на 2.5.

Я хочу установить 2.5 отдельно от 2.4, но я не уверен, как это сделать. Пока я загрузил исходный tarball, распаковал его и сделал ./configure --prefix=/opt, где я хочу, чтобы это закончилось. Могу ли я сейчас просто make, make install? Или есть еще?

+8

Я лично использовал CentOS alot и сделал переход на Ubuntu из-за того, насколько жестоки дистрибутивы RedHat/CentOS (Python 2.4 ...). Если вы политически можете совершить прыжок, сделайте это. Вы будете намного счастливее и больше не будете беспокоиться об этом. –

+1

Компиляция из источника и установка их в '/ usr/local' (по умолчанию) не должны вызывать никаких проблем. Или, еще лучше, trash centos и установить debian: P –

+19

Huh? Точка CentOS/RHEL - это долгосрочная поддержка. Если есть возможность переключиться на последнюю версию, тогда переход на Fedora имеет гораздо больший смысл, чем переход на Ubuntu для кого-то с фоном CentOS. –

ответ

24

Нет, это все. Возможно, вы захотите убедиться, что у вас есть все дополнительные заголовки библиотек, поэтому вам не придется перекомпилировать их позже. Они перечислены в документации, я думаю.

Кроме того, вы можете установить его даже на стандартном пути, если вы делаете make altinstall. Таким образом, он не будет отменять ваш текущий «python» по умолчанию.

+12

+1: 'sudo make altinstall' – jfs

+3

wget http://www.python.org/ftp/ python/2.6.6/Python-2.6.6.tgz затем ./configure их make altinstall –

12

Chris Lea предоставляет репозиторий YUM для RPM python26, который может сосуществовать с «родным» 2.4, который необходим для довольно многих инструментов администрирования CentOS.

Краткая инструкция, которые работали по крайней мере для меня:

$ sudo rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm 
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL 
$ sudo yum install python26 
$ python26 
+3

Это не работает в CentOS 5.4: Пакет python26 не доступен. –

+3

Не работал на CentOS 5.5: Отсутствует зависимость: libffi.so.5 –

+0

будет ли эта работа работать в центрах? – Charlesliam

28

Когда я столкнулся с подобными ситуациями, я вообще избежать менеджер пакетов, особенно если это будет неловко нарушить что-то, то есть на сервере , Вместо этого, я пошел бы в ActiveState и загрузить их бинарный пакет:

https://www.activestate.com/activepython/downloads/

Это устанавливается путем запуска скрипта, который помещает все в папку и не трогать системные файлы. На самом деле вам даже не нужны права root для его настройки. Затем я меняю имя двоичного файла на нечто вроде apy26, добавляю эту папку в конец PATH и начинаю кодирование. Если вы устанавливаете пакеты с apy26 setup.py install, или если вы используете virtualenv и easyinstall, тогда у вас будет такая же гибкая среда python, сколько вам нужно, не касаясь системного стандартного python.

Редактирование ... Недавно я проделал определенную работу по созданию переносного бинарного Python для Linux, который должен работать на любом дистрибутиве без внешних зависимостей. Это означает, что любые бинарные разделяемые библиотеки, необходимые переносимому модулю Python, являются частью сборки, включенной в tarball и установленной в частной структуре Python. Таким образом вы можете установить Python для своего приложения, не мешая установленному Python системе.

My github site имеет скрипт сборки, который был тщательно протестирован на Ubuntu Lucid 10.04 LTS как на 32, так и на 64 бит. Я также построил его на Debian Etch, но это было давно, и я не могу гарантировать, что я ничего не изменил. Самый простой способ сделать это - просто поместить свой выбор Ubuntu Lucid в виртуальную машину, проверить скрипт с помощью git clone git://github.com/wavetossed/pybuild.git, а затем запустить скрипт.

После того, как вы его построили, используйте tarball на любом последнем дистрибутиве Linux.Существует одна небольшая морщина, перемещающая ее в директорию, отличную от /data1/packages/python272, которая заключается в том, что вы должны запустить включенный patchelf, чтобы установить путь интерпретатора ПЕРЕД двигателем каталога. Это влияет на любые двоичные файлы в /data1/packages/python272/bin

Все это основано на построении с RUNPATH и копировании зависимых разделяемых библиотек. Несмотря на то, что скрипт находится в нескольких файлах, это фактически один длинный сценарий оболочки, упорядоченный в стиле директорий /etc/rc.d.

+4

Я не знаю, какая лицензия была в прошлом, но, к сожалению, теперь она не позволяет вам использовать ActivePython на внешних серверах, если вы не купите Business Edition ($$$). https://www.activestate.com/compare-editions – Nate

+2

Чтобы избежать взлома сервера с помощью диспетчера пакетов, вы полагаетесь на скрипты сторонних поставщиков? huh – akostadinov

2

Late к партии, но ОП должны были пойти с Buildout или Virtualenv и полностью уклонился проблема.

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

+2

можете ли вы использовать virtualenv для установки python2.6, когда установлен только python2.4? –

+0

Конечно. Используйте параметр -no-site-packages в virtualenv, я полагаю, или создаю питон в buildout. – chiggsy

+0

НЕТ, virtualenv просто занимается модулями/пакетами python и их версиями.Его все еще нужно указывать на рабочий бинарный интерпретатор python (уже в системе). –

77

Вы также можете использовать EPEL-repository, а затем сделать sudo yum install python26 установить Python 2.6

+8

Как использовать EPEL: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse - Но не забудьте заменить i386 на свою арку, если она не 32-разрядная x86 – rakslice

+0

Работала для меня! Мне нужны были они для другого проекта, так что я вдвойне счастлив! – rholmes

+1

кажется, что Python 2.6 больше не в эпиле. – mujimu

25

Нет необходимости делать ням или сделать ваш собственный RPM. Сборка python26 из источника.

wget https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz 
tar -zxvf Python-2.6.6.tgz 
cd Python-2.6.6 
./configure && make && make install 

Там может быть DEPENDENCY об ошибке Используйте

yum install gcc cc 

добавить путь установки (/usr/local/bin/python по умолчанию) для ~/.bash_profile.

Это не сломает yum или любые другие вещи, которые зависят от python24.

+1

Примечание. Для этого требуется компилятор C. Это не похоже на то, что у вас есть запас с CentOS 5 (по крайней мере, у меня нет одного на PATH). –

+0

./configure && make && make alt install (http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos /) – luismartingil

1
rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm 
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL 
rpm -Uvh ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm 
yum install python26 
python26 

для ДОСа, которые просто не знают: =)

31

Try Epel

wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm 
sudo rpm -ivh epel-release-5-4.noarch.rpm 
sudo yum install python26 

Питон исполняемый файл будет доступен в /usr/bin/python26

mkdir -p ~/bin 
ln -s /usr/bin/python26 ~/bin/python 
export PATH=~/bin:$PATH # Append this to your ~/.bash_profile for persistence 

Теперь python команда будет выполняться python 2.6

+0

Спасибо за последний бит - я только что установил python26 и задавался вопросом, как сделать «default» (2.4) ссылкой на 2.6. Сделал это создание символической ссылки и установил путь. –

+0

Это, очевидно, будет работать ... для одного пользователя ... до тех пор, пока не заменит python2.6 на 3.0 или что-то еще ... но, похоже, это рекомендуемый способ сделать это. У меня возникли проблемы с верой в то, что CentOS не располагает инструментом для выбора версии различных одновременно установленных пакетов (я часто сталкиваюсь с двумя версиями Java, PostgreSQL и теперь python), что-то вроде configure_python -s 2.6 и всего " волшебным образом "встает на место за занавесками, без того, чтобы пользователь должен был подумать о случаях с углами в будущем. –

+0

Я думаю, причина в том, что, будучи корпоративной ОС, в основном используемой для серверов, люди не делают много развития в Cent OS. После того, как все настроено правильно, они не трогают сервер, если только для периодических обновлений безопасности. –

0

Я не узнал исходную версию python (2.6.6) и установил 2.7 (с опцией make && make altinstall), но когда я попытался установить что-то с yum, это не сработало.

Так что я решил эту проблему следующим образом:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Загрузить пакет RPM питона-2.6.6-36.el6.i686.оборотов в минуту от http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6.6-36.el6.i686.rpm.html
  3. Выполнить как корень rpm -Uvh python-2.6.6-36.el6.i686.rpm

Done

1
# yum groupinstall "Development tools" 
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel 

Скачать и установить Python 3.3.0

# wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2 
# tar xf Python-3.3.0.tar.bz2 
# cd Python-3.3.0 
# ./configure --prefix=/usr/local 
# make && make altinstall 

Скачать и установить Распределить на Python 3.3

# wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz 
# tar xf distribute-0.6.35.tar.gz 
# cd distribute-0.6.35 
# python3.3 setup.py install 

Установка и использование virtualenv для Python 3.3

# easy_install-3.3 virtualenv 
# virtualenv-3.3 --distribute otherproject 

New python executable in otherproject/bin/python3.3 
Also creating executable in otherproject/bin/python 
Installing distribute...................done. 
Installing pip................done. 

# source otherproject/bin/activate 
# python --version 
Python 3.3.0 
3

При установке вашего питона версии (в данном случае это python2.6), то выполните следующую команду, чтобы создать свой virtualenv:

0

Введите следующие команды на терминале, чтобы установить Python 3.6 на CentOS 7:

$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm 

Затем сделайте:

$ sudo yum install python36u 

Вы также можете установить любую версию вместо 3.6 (если вы хотите) путем замены 36 на ваш номер версии.