Zainstaluj Pythona 2.6 w CentOS

85

Mam powłokę z CentOS.

Do projektu, który robię, potrzebuję Pythona 2.5+, ale centOS jest dość zależny od 2.4.

Z tego, co przeczytałem, wiele rzeczy się zepsuje, jeśli uaktualnisz do 2.5.

Chcę zainstalować 2.5 oddzielnie od 2.4, ale nie jestem pewien, jak to zrobić. Jak dotąd pobrałem archiwum źródłowe, rozpakowałem je i zrobiłem, ./configure --prefix=/optco jest tam, gdzie ma się skończyć. Czy mogę teraz po prostu make, make install? Czy jest więcej?

tehryan
źródło
8
Osobiście często korzystałem z CentOS i przeszedłem na Ubuntu z powodu okrucieństwa dystrybucji RedHat / CentOS (Python 2.4 ...). Jeśli politycznie potrafisz skoczyć, zrób to. Będziesz dużo szczęśliwszy i nie będziesz już musiał martwić się o tego typu rzeczy.
Adam Nelson,
1
Skompiluj ze źródeł i zainstaluj je /usr/local(domyślnie) nie powinno sprawiać żadnych problemów. Lub, jeszcze lepiej, usuń centos i zainstaluj debian: P
o0 '.
19
Co? Celem CentOS / RHEL jest długoterminowe wsparcie. Jeśli istnieje opcja przejścia na najnowszą dystrybucję, przejście na Fedorę ma znacznie więcej sensu niż przejście na Ubuntu dla kogoś z tłem CentOS.
Muhammad Alkarouri
1
Żeby było jasne, bez sarkastycznych pasków bocznych: TAK. Możesz zainstalować nowszą wersję Pythona ze źródła w / opt, tak jak podano. Lub domyślnie przechodzi do / usr / local / {bin, lib, share, man}, który również działa świetnie i nie będzie kolidował z Pythonem 2.4, który NADAL jest wersją w CentOS 5. CentOS 6 jest dostarczany z Pythonem 2.6.6.
IcarusNM

Odpowiedzi:

79

Możesz także użyć repozytorium EPEL , a następnie sudo yum install python26zainstalować python 2.6

boerre
źródło
8
Jak korzystać z EPEL: fedoraproject.org/wiki/EPEL/FAQ#howtouse - Ale pamiętaj, aby zastąpić i386 swoim łukiem, jeśli nie jest to 32-bitowe x86
rakslice
Pracował dla mnie! Potrzebowałem ich również do innego projektu, więc jestem podwójnie szczęśliwy!
rholmes
1
wydaje się, że Python 2.6 nie jest już w epel.
mujimu
1
@mujimu, myślę, że mogą uczynić 2.6 domyślnym powyżej 2.4. Tak więc polecenia takie jak yum install python26mogą zależeć tylko yum install pythonod smaku / wersji systemu operacyjnego.
James Oravec
31

Wypróbuj 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

Plik wykonywalny Pythona będzie dostępny pod adresem /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

Teraz pythonpolecenie zostanie wykonanepython 2.6

Joyce Babu
źródło
Dzięki za ostatnią część - właśnie zainstalowałem python26 i zastanawiałem się, jak ustawić „default” (2.4) na 2.6. Stworzenie linku symbolicznego i dostosowanie ścieżki zrobiło to.
Jay Sidri
To oczywiście zadziała ... dla jednego użytkownika ... dopóki nie zastąpi się python2.6 wersją 3.0 lub czymkolwiek ... ale wydaje się, że jest to zalecany sposób zrobienia tego. Mam problem z uwierzeniem, że CentOS nie zawiera narzędzia do wyboru wersji różnych współbieżnie zainstalowanych pakietów do użycia (często spotykam 2 wersje Javy, PostgreSQL i teraz Pythona), coś takiego jak configure_python -s 2.6 i wszystko „magicznie” układa się za zasłoną, bez konieczności myślenia o skrzynkach narożnych w przyszłości.
Tomislav Nakic-Alfirevic
Myślę, że powodem jest to, że będąc korporacyjnym systemem operacyjnym używanym głównie na serwerach, ludzie nie zajmują się programowaniem Cent OS. Gdy wszystko jest poprawnie skonfigurowane, nie dotykają serwera, chyba że od czasu do czasu pojawiają się aktualizacje zabezpieczeń.
Joyce Babu
1
@ TomislavNakic-Alfirevic Jeszcze tego nie próbowałem, ale github.com/yyuu/pyenv wygląda obiecująco. Buduje wszystko ze źródła i instaluje każdą wersję w swoim własnym katalogu. Wygląda na to, że jest bardziej ukierunkowany na instalowanie przez programistów w ich własnych katalogach domowych, ale kompilacje można uruchamiać jako sudo i kierować na katalog współdzielony.
Mark Evans,
@MarkEvans Python naprawdę nie jest moją mocną stroną, więc łatwo mogę się mylić, ale pyenv wygląda na rozwiązanie innego problemu. Gdybyś zastąpił „python” „JDK”, zdecydowanie nie byłbym zachwycony kompilacją go tylko po to, aby móc wdrożyć aplikację Java: chcę wersję JDK, którą ktoś inny skompilował, przetestował, ponownie przetestował i ponownie przetestował z jaką kiedykolwiek wersją CentOS używam. Chciałbym zastosować tę samą logikę do Pythona. To powiedziawszy, jestem pewien, że istnieją przypadki użycia, w których pyenv świeci, takie jak dev. (w przeciwieństwie do maszyn wdrożeniowych).
Tomislav Nakic-Alfirevic
28

Kiedy spotykam się z podobnymi sytuacjami, generalnie unikam menedżera pakietów, zwłaszcza jeśli byłoby krępujące zepsuć coś, np. Serwer produkcyjny. Zamiast tego poszedłbym do Activestate i pobrałbym ich pakiet binarny:

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

Jest to instalowane przez uruchomienie skryptu, który umieszcza wszystko w folderze i nie dotyka żadnych plików systemowych. W rzeczywistości nie potrzebujesz nawet uprawnień roota, aby go skonfigurować. Następnie zmieniam nazwę pliku binarnego na coś takiego jak apy26, dodaję ten folder na koniec PATH i zaczynam kodowanie. Jeśli instalujesz pakiety z apy26 setup.py installlub używasz virtualenv i easyinstall, masz tak elastyczne środowisko Pythona, jak potrzebujesz, bez dotykania standardowego systemu python.

Edycje ... Ostatnio wykonałem trochę pracy, aby zbudować przenośny plik binarny Pythona dla Linuksa, który powinien działać na dowolnej dystrybucji bez zewnętrznych zależności. Oznacza to, że wszelkie binarne biblioteki współdzielone wymagane przez przenośny moduł Pythona są częścią kompilacji, są zawarte w paczce i są instalowane w prywatnej strukturze katalogów Pythona. W ten sposób możesz zainstalować Python dla swojej aplikacji bez ingerencji w system zainstalowany w Pythonie.

Moja witryna github zawiera skrypt kompilacji, który został dokładnie przetestowany na Ubuntu Lucid 10.04 LTS, zarówno w instalacjach 32, jak i 64-bitowych. Zbudowałem go również na Debianie Etch, ale to było jakiś czas temu i nie mogę zagwarantować, że niczego nie zmieniłem. Najłatwiejszym sposobem jest po prostu umieszczenie wybranego Ubuntu Lucid na maszynie wirtualnej, pobranie skryptu za pomocą, git clone git://github.com/wavetossed/pybuild.gita następnie uruchomienie skryptu.

Gdy już go zbudujesz, użyj archiwum tar w dowolnej ostatniej dystrybucji Linuksa. Jest jeden mały problem z przenoszeniem go do katalogu innego niż /data1/packages/python272ten, że musisz uruchomić dołączony, patchelfaby ustawić ścieżkę interpretera PRZED przeniesieniem katalogu. Dotyczy to wszystkich plików binarnych w/data1/packages/python272/bin

Wszystko to opiera się na budowaniu z RUNPATH i kopiowaniu zależnych bibliotek współdzielonych. Mimo że skrypt znajduje się w kilku plikach, jest to właściwie jeden długi skrypt powłoki ułożony w stylu katalogów /etc/rc.d.

Michael Dillon
źródło
4
Nie wiem, jaka była licencja w przeszłości, ale niestety teraz nie pozwala na używanie ActivePython na zewnętrznych serwerach, chyba że kupisz Business Edition ($$$). activestate.com/compare-editions
Nate,
2
aby uniknąć zerwania serwera z menedżerem pakietów, polegasz na skryptach zewnętrznych dostawców? huh
akostadinov
26

Nie musisz robić mniam ani tworzyć własnego RPM. Twórz python26ze źródła.

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

Nie może być błąd zależność wykorzystanie

yum install gcc cc

Dodaj ścieżkę instalacji ( /usr/local/bin/pythondomyślnie) do ~/.bash_profile.

Nie zepsuje się yumani żadnych innych rzeczy, od których zależy python24.

Rahul Arora
źródło
1
Uwaga: aby to działało, wymagany jest kompilator AC. Nie wygląda na to, żeby ktoś był na stanie z CentOS 5 (przynajmniej mój nie ma go na PATH)
Cody S
./configure && make && make alt install ( toomuchdata.com/2014/02/16/how-to-install-python-on-centos )
luismartingil
24

Nie, to wszystko. Możesz chcieć upewnić się, że masz również zainstalowane wszystkie opcjonalne nagłówki bibliotek, aby nie trzeba było ich później ponownie kompilować. Sądzę, że są wymienione w dokumentacji.

Jeśli to zrobisz, możesz go zainstalować nawet w standardowej ścieżce make altinstall. W ten sposób nie zastąpi twojego obecnego domyślnego „pythona”.

Lennart Regebro
źródło
4
wget python.org/ftp/python/2.6.6/Python-2.6.6.tgz then ./configure them make altinstall
Olivier
12

Chris Lea zapewnia repozytorium YUM dla RPM python26, które mogą współistnieć z „natywną” wersją 2.4, która jest potrzebna do wielu narzędzi administracyjnych w CentOS.

Szybkie instrukcje, które zadziałały przynajmniej dla mnie:

$ 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
Kimvais
źródło
3
To nie zadziałało pod CentOS 5.4: brak dostępnego pakietu python26.
Joseph Turian
3

Po zainstalowaniu wersji Pythona (w tym przypadku jest to python2.6), wydaj to polecenie, aby utworzyć virtualenv:

virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/
user1427258
źródło
2

Późno do partii, ale OP powinien poszły z buildout lub virtualenv , a pominął problem całkowicie.

Obecnie pracuję na serwerze Centos, cóż, ciężka praca byłaby właściwym określeniem i mogę zapewnić wszystkich, że jedyny sposób, w jaki mogę powstrzymać łzy podczas korzystania z oprogramowania odpowiedników włóczni hartowanych ogniowo, to build.

chiggsy
źródło
2
czy możesz użyć virtualenv do zainstalowania pythona2.6, gdy zainstalowany jest tylko python2.4?
Collin Anderson,
Na pewno. Skorzystaj z opcji --no-site-packages w virtualenv, jak sądzę, lub zbuduj Pythona w buildout.
chiggsy
NIE, virtualenv zajmuje się tylko modułami / pakietami Pythona i ich wersjami. Nadal należy wskazać działający plik binarny interpretera języka Python (już w systemie).
Jason Antman
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

dla dos, których po prostu nie wiem: =)

Tani VPN
źródło
1
# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

Pobierz i zainstaluj 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

Pobierz i zainstaluj Distribute for 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

Zainstaluj i używaj virtualenv dla Pythona 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
Moddasir
źródło
0

Odinstalowałem oryginalną wersję Pythona (2.6.6) i zainstalowałem 2.7 (z opcją make && make altinstall ), ale kiedy próbowałem zainstalować coś z yum, nie działało.

Więc rozwiązałem ten problem w następujący sposób:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Pobierz pakiet RPM python-2.6.6-36.el6.i686.rpm ze strony http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6. 6-36.el6.i686.rpm.html
  3. Wykonaj jako root rpm -Uvh python-2.6.6-36.el6.i686.rpm

Gotowe

user2544607
źródło
-1

Wpisz następujące polecenia na terminalu, aby zainstalować Python 3.6 na CentOS 7:

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

Następnie wykonaj:

$ sudo yum install python36u 

Możesz także zainstalować dowolną wersję zamiast 3.6 (jeśli chcesz), zastępując 36 numerem wersji.

Ayush Kumar Sharma
źródło