Встановіть 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.