Встановіть python 2.6 у CentOS


85

У мене є оболонка, яка запускає CentOS.

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

З того, що я прочитав, низка речей зламається, якщо ви оновите до 2.5.

Я хочу встановити 2.5 окремо від 2.4, але не знаю, як це зробити. Поки що я завантажив вихідний tarball, зняв його з зірки і зробив те ./configure --prefix=/opt, де я хочу, щоб він закінчився. Чи можу я зараз просто make, make install? Або є більше?


8
Я особисто часто використовував CentOS і перейшов на Ubuntu через те, наскільки жорстокими є дистрибутиви RedHat / CentOS (Python 2.4 ...). Якщо ви політично можете зробити стрибок, зробіть це. Ви станете набагато щасливішими і вам більше не доведеться турбуватися про подібні речі.
Адам Нельсон,

1
Компіляція з джерела та встановлення їх у /usr/local(за замовчуванням) не повинно викликати жодних проблем. Або, ще краще, скиньте centos та встановіть debian: P
o0 '.

19
А? Сенс CentOS / RHEL - це довгострокова підтримка. Якщо є можливість перейти на найновіший дистрибутив, тоді перехід на Fedora має набагато більше сенсу, ніж перехід на Ubuntu для тих, хто має фон CentOS.
Мухаммед Алкароурі,

1
Щоб бути зрозумілим, без будь-яких саркастичних бічних панелей: ТАК. Ви можете встановити новішу версію Python, з джерела, в / opt, як ви вказали. Або за замовчуванням він переходить у / usr / local / {bin, lib, share, man}, який також чудово працює і не заважатиме python 2.4, що все ще є версією в CentOS 5. CentOS 6 поставляється з python 2.6.6.
IcarusNM

Відповіді:


79

Ви також можете використовувати EPEL-сховище , а потім зробити, sudo yum install python26щоб встановити python 2.6


8
Як користуватися EPEL: fedoraproject.org/wiki/EPEL/FAQ#howtouse - Але пам’ятайте замінити i386 на вашу арку, якщо вона не є 32-розрядною x86
rakslice

Працював у мене! Мені вони були потрібні і для іншого проекту, тому я подвійно щасливий!
rholmes

1
здається, Python 2.6 вже не в epel.
mujimu

1
@mujimu, я думаю, що вони можуть зробити 2,6 за замовчуванням за 2,4. Тож такі команди yum install python26можуть залежати лише yum install pythonвід смаку / версії ОС.
James Oravec

31

Спробуйте 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

Виконуваний файл python буде доступний за адресою /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


Дякую за останній біт - я щойно встановив python26 і міркував, як зробити так, щоб "за замовчуванням" (2.4) посилався на 2.6. Створення символічного посилання та коригування шляху зробили це.
Jay Sidri

Очевидно, це буде працювати ... для одного користувача ... доки один не замінить python2.6 на 3.0 або що завгодно ... але, схоже, це рекомендований спосіб зробити це. У мене виникають проблеми з переконанням, що CentOS не постачається з інструментом для вибору версії різних одночасно встановлених пакетів для використання (я часто стикаюся з 2 версіями Java, PostgreSQL і тепер python), щось на зразок configure_python -s 2.6 і все "магічно" стає на своє місце за шторами, без того, щоб користувачеві доводилося думати про кутові випадки років у майбутньому.
Томіслав Накіч-Альфіревіч

Я думаю, що причина в тому, що, будучи корпоративною ОС, яка в основному використовується для серверів, люди не надто розвиваються на Cent OS. Як тільки все налаштовано правильно, вони не торкаються сервера, окрім випадкових оновлень безпеки.
Джойс Бабу,

1
@ TomislavNakic-Alfirevic Я ще не пробував, але github.com/yyuu/pyenv виглядає багатообіцяючим. Він будує все з джерела та встановлює кожну версію у власному каталозі. Схоже, це націлено більше на встановлення розробниками у власних домашніх каталогах, але збірки можна запускати як sudo та націлювати на спільний каталог.
Mark Evans

@MarkEvans Python насправді не є моєю сильною стороною, тому я міг би легко помилитися, але pyenv виглядає як вирішення іншої проблеми. Якби ви замінили "python" на "JDK", я точно не був би в захваті від його компіляції лише для того, щоб мати змогу розгорнути додаток Java: я хочу версію JDK, яку хтось інший скомпілював, протестував, протестував і знову протестував, з якою коли-небудь версією CentOS, яким я користуюся. Я схильний застосовувати ту саму логіку до Python. Тим не менш, я впевнений, що є випадки використання, коли pyenv світить, наприклад dev. (на відміну від розгортання) машин.
Томіслав Накіч-Альфіревіч

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.

На моєму веб-сайті github є сценарій збірки, який був ретельно протестований під час встановлення 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 ($$$). activestate.com/compare-editions
Нейт

2
щоб уникнути злому сервера за допомогою менеджера пакетів, ви покладаєтесь на сценарії сторонніх постачальників? ха
Акостадінов

26

Не потрібно займатися смаком або робити власні 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

Можливо використання помилки залежності

yum install gcc cc

Додайте шлях встановлення ( /usr/local/bin/pythonза замовчуванням) до ~/.bash_profile.

Він не зламається yumі не залежить від інших речей python24.


1
Примітка. Щоб це працювало, потрібен компілятор змінного струму. Це не схоже на те, що один поставляється в комплекті з CentOS 5 (принаймні, у мене його немає на PATH)
Cody S 02

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

24

Ні, це все. Можливо, ви захочете переконатися, що у вас також встановлені всі додаткові заголовки бібліотек, щоб вам не потрібно було їх перекомпілювати пізніше. Вони перераховані в документації, я думаю.

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


4
wget python.org/ftp/python/2.6.6/Python-2.6.6.tgz, а потім. / налаштувати їх зробити altinstall
Олів'є Рефало,

12

Кріс Леа пропонує сховище YUM для обертів на хвилину 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

Коли ви встановлюєте свою версію python (у цьому випадку це python2.6), виконайте цю команду, щоб створити virtualenv:

virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/

2

Пізно на вечірку, але ОП повинен був піти з Buildout або Virtualenv і повністю обійти проблему.

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


2
Ви можете використовувати virtualenv для встановлення python2.6, коли встановлено лише python2.4?
Коллін Андерсон,

Звичайно. Використовуйте опцію --no-site-пакети у virtualenv, на мою думку, або побудуйте python у buildout.
chiggsy

НІ, virtualenv просто має справу з модулями / пакетами python та їх версіями. Це все ще потрібно вказати на працюючий двійковий файл інтерпретатора python (вже в системі).
Джейсон Антман,



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

для дос, які просто не знають: =)


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

Завантажте та встановіть Distribute для 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

0

Я видалив оригінальну версію python (2.6.6) та встановив 2.7 (з опцією make && make altinstall), але коли я спробував встановити щось із yum, це не спрацювало.

Тож я вирішив цю проблему наступним чином:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Завантажте пакет RPM python-2.6.6-36.el6.i686.rpm з http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6. 6-36.el6.i686.rpm.html
  3. Виконати як root rpm -Uvh python-2.6.6-36.el6.i686.rpm

Готово


-1

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

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

Тоді зробіть:

$ sudo yum install python36u 

Ви також можете встановити будь-яку версію замість 3.6 (якщо хочете), просто замінивши 36 на номер вашої версії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.