2009-09-23 14 views
83

Mam powłokę, która działa CentOS.Zainstalować python 2.6 w CentOS

Dla projektu, który robię, potrzebuję Pythona 2.5+, ale centOS jest bardzo zależny od 2.4.

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

Chcę zainstalować 2.5 oddzielnie od wersji 2.4, ale nie jestem pewien, jak to zrobić. Do tej pory pobrałem archiwum źródłowe, rozpakowałem je i zrobiłem ./configure --prefix=/opt, w którym chcę go skończyć. Czy mogę teraz tylko make, make install? Czy jest ich więcej?

+8

Osobiście użyłem CentOS alot i przerzuciłem się na Ubuntu z powodu tego, jak kiepskie są dystrybucje RedHat/CentOS (Python 2.4 ...). Jeśli politycznie potrafisz wykonać skok, zrób to. Będziesz o wiele szczęśliwszy i nie będziesz już musiał się martwić takimi rzeczami. –

+1

Skompiluj ze źródła i instaluj je w '/ usr/local' (domyślnie) nie powinno powodować żadnych problemów. Albo, jeszcze lepiej, centa na śmieci i zainstaluj debiana: P –

+19

Huh? Punkt CentOS/RHEL jest wsparciem długoterminowym. Jeśli istnieje opcja przełączenia na najnowszą dystrybucję, przejście na Fedorę ma o wiele większe znaczenie niż przejście na Ubuntu dla kogoś z tłem CentOS. –

Odpowiedz

24

Nie, to wszystko. Możesz również upewnić się, że masz zainstalowane wszystkie opcjonalne nagłówki bibliotek, więc nie musisz ich później rekompilować. Są one wymienione w dokumentacji, którą myślę.

Możesz również zainstalować go nawet w standardowej ścieżce, jeśli wykonasz make altinstall. W ten sposób nie zastąpi twojego bieżącego domyślnego "python".

+12

+1: 'sudo make altinstall' – jfs

+3

wget http://www.python.org/ftp/ python/2.6.6/Python-2.6.6.tgz następnie ./konfiguruj je zrobić altinstall –

12

Chris Lea zapewnia repozytorium YUM dla python26 RPM, które mogą współistnieć z "natywnym" 2.4, który jest potrzebny dla wielu narzędzi administracyjnych w CentOS.

Szybkie instrukcje, które pracował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 
+3

To nie działało pod CentOS 5.4: Brak pakietu python26. –

+3

Nie działa w CentOS 5.5: Brakująca zależność: libffi.so.5 –

+0

czy to zadziała na centów? – Charlesliam

28

Kiedy Zabrakło mi do podobnych sytuacji, ja generalnie uniknąć menedżera pakietów, szczególnie jeśli byłoby kłopotliwe złamać coś, tj serwerze produkcyjnym . Zamiast tego, chciałbym przejść do ActiveState i pobierz swój pakiet binarny:

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

ten jest instalowany przez uruchomienie skryptu, który umieszcza wszystko w folderze i nie dotykać żadnych plików systemowych. W rzeczywistości nie trzeba nawet uprawnień root'a, aby go skonfigurować. Następnie zmieniam nazwę pliku binarnego na coś podobnego do apy26, dodaję ten folder do końca ścieżki PATH i zaczynam kodować. Jeśli instalujesz pakiety z apy26 setup.py install lub używasz virtualenv i easyinstall, masz równie elastyczne środowisko pythonowe, jakiego potrzebujesz, bez dotykania standardowego python'a.

Edycja ... Niedawno zrobiłem trochę pracy, aby zbudować przenośny plik binarny w języku Python dla systemu Linux, który powinien działać w dowolnej dystrybucji bez żadnych zewnętrznych zależności. Oznacza to, że wszelkie udostępnione biblioteki binarne, które są wymagane przez przenośny moduł Pythona, są częścią kompilacji, zawarte w archiwum i instalowane w prywatnej strukturze Pythona. W ten sposób możesz zainstalować Pythona do swojej aplikacji bez ingerencji w zainstalowany system Python.

My github site ma skrypt budujący, który został gruntownie przetestowany na Ubuntu Lucid 10.04 LTS, zarówno instalacje 32-, jak i 64-bitowe. Zbudowałem go również na Debianie Etch, ale było to jakiś czas temu i nie mogę zagwarantować, że coś nie zmieniłem. Najprościej to zrobić, wystarczy, że wybierzesz Ubuntu Lucid na maszynie wirtualnej, sprawdzisz skrypt pod numerem git clone git://github.com/wavetossed/pybuild.git, a następnie uruchomisz skrypt.

Po zbudowaniu, użyj tarballa na dowolnej ostatniej dystrybucji Linuksa.Jest jedna mała zmarszczka z przeniesieniem jej do katalogu innego niż /data1/packages/python272, co oznacza, że ​​musisz uruchomić dołączoną patchelf, aby ustawić ścieżkę tłumacza PRZED przeniesieniem katalogu. Wpływa to na wszystkie pliki binarne w /data1/packages/python272/bin

Wszystko to opiera się na budowaniu za pomocą RUNPATH i kopiowaniu zależnych bibliotek współużytkowanych. Mimo że skrypt znajduje się w kilku plikach, jest to efektywnie jeden długi skrypt powłoki ustawiony w stylu katalogów /etc/rc.d.

+4

Nie wiem, jaka licencja była w przeszłości, ale niestety teraz nie pozwala ona używać ActivePython na serwerach zewnętrznych, chyba że kupisz wersję biznesową ($$$). https://www.activestate.com/compare-editions – Nate

+2

, aby uniknąć zerwania serwera z menedżerem pakietów, na którym polegają skrypty dostawcy zewnętrznego? huh – akostadinov

2

późno do partii, ale OP powinien poszły z Buildout lub Virtualenv, a pominął problem całkowicie.

Obecnie pracuję nad serwerem Centos, no cóż, odkładanie na bok byłoby właściwym terminem i mogę zapewnić wszystkich, że jedynym sposobem, w jaki jestem w stanie mrugnąć łzami podczas korzystania z oprogramowania równoważnego z hartowanymi ostrzami, jest buildout.

+2

czy możesz użyć virtualenv do instalacji python2.6, gdy zainstalowany jest tylko python2.4? –

+0

Oczywiście. Używaj opcji -no-site-packages w virtualenv Wierzę lub buduję pytona w buildout. – chiggsy

+0

NO, virtualenv zajmuje się tylko modułami/pakietami python i ich wersjami.Nadal należy wskazać na działającego binarnego interpretera python (już w systemie). –

77

Można również użyć EPEL-repository, a następnie wykonaj sudo yum install python26 zainstalować Python 2.6

+8

Jak korzystać z EPEL: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse - Ale pamiętaj, aby zastąpić i386 swoim łukiem, jeśli nie jest to 32-bitowy x86 – rakslice

+0

Pracował dla mnie! Też potrzebowałem ich do innego projektu, więc jestem podwójnie szczęśliwy! – rholmes

+1

wydaje się, że Python 2.6 nie jest już w epel. – mujimu

25

Nie trzeba zrobić yum lub dokonać własne obroty. Zbuduj python26 ze ź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ć zależnościami błędzie Użyj

yum install gcc cc 

dodać ścieżkę instalacji (/usr/local/bin/python domyślnie) do ~/.bash_profile.

Nie złamie ona yum ani żadnych innych rzeczy, które są zależne od python24.

+1

Uwaga: Aby to działało, potrzebny jest kompilator języka C. To nie wygląda jak jeden pochodzi akcji z CentOS 5 (przynajmniej, kopalnia nie masz na ścieżce) –

+0

./configure && make && make install alt (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 

dla DOS, które po prostu nie wiem: =)

31

Spró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 

Pyton wykonywalny będzie dostępny na /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 komenda python wykona python 2.6

+0

Dzięki za ostatni bit - właśnie zainstalowałem python26 i zastanawiałem się, jak uczynić "default" (2.4) odnosić się do 2.6. Utworzono dowiązanie symboliczne i dostosowałem ścieżkę. –

+0

To oczywiście będzie działać ... dla jednego użytkownika ... dopóki nie zastąpi Pythona2.6 przez 3.0 lub cokolwiek innego ... ale wydaje się, że jest to zalecany sposób, aby to zrobić. Mam problemy wierząc, że CentOS nie pochodzi z narzędziem, aby wybrać wersję różnych równolegle zainstalowanych pakietów w użyciu (I często napotykają 2 wersje Java, PostgreSQL i teraz Pythona), coś jak configure_python -s 2.6 i wszystko " magicznie "wpada w zasłonę za zasłonami, a użytkownik nie musi myśleć o przypadkach narożnych w przyszłości. –

+0

Myślę, że powodem jest to, że będąc systemem operacyjnym firmy używanym głównie do serwerów, ludzie nie robią dużego rozwoju w Cent Cent. Gdy wszystko jest poprawnie skonfigurowane, nie dotykają serwera, chyba że w przypadku sporadycznych aktualizacji zabezpieczeń. –

0

I unistalled oryginalnej wersji python (2.6.6) i zainstalować 2.7 (z opcją make && make altinstall), ale kiedy próbowałem zainstalować coś z yum nie działa.

więc rozwiązać ten problem następująco:

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

Gotowe

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

Pobrać i zainstalować 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 Dystrybucja dla Pythona 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 

zainstalować i używać 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 
3

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

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

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żna również zainstalować dowolną wersję zamiast 3,6 (jeśli chcesz) tylko o zastąpienie 36 numer wersji.

Powiązane problemy