Python 2.6'yı CentOS'a yükleyin


85

CentOS çalıştıran bir kabuğum var.

Yaptığım bir proje için python 2.5+ gerekir, ancak centOS oldukça bağımlıdır 2.4.

Okuduğuma göre, 2.5'e yükseltirseniz bazı şeyler bozulacak.

2.5'i 2.4'ten ayrı olarak kurmak istiyorum ama nasıl yapacağımı bilmiyorum. Şimdiye kadar kaynak tarball'ı indirdim, tarball'ı ./configure --prefix=/optkaldırdım ve bir son bulmasını istediğim yerde yaptım. Şimdi yapabilir miyim make, make install? Yoksa daha fazlası mı var?


8
Ben şahsen CentOS'u çok kullanıyordum ve RedHat / CentOS dağıtımlarının ne kadar becerikli olduğu (Python 2.4 ...) nedeniyle Ubuntu'ya geçtim. Politik olarak atlayabiliyorsanız, yapın. Çok daha mutlu olacaksınız ve artık bu tür şeyler için endişelenmenize gerek kalmayacak.
Adam Nelson

1
Kaynaktan derleyin ve bunları /usr/local(varsayılan) içine yüklemek herhangi bir soruna neden olmamalıdır. Ya da daha da iyisi, centosları çöpe atın ve debian'ı kurun: P
o0 '.

19
Huh? CentOS / RHEL'in amacı uzun vadeli destektir. En son dağıtıma geçme seçeneği varsa, Fedora'ya geçmek, CentOS geçmişi olan biri için Ubuntu'ya geçmekten çok daha mantıklıdır.
Muhammad Alkarouri

1
Açıkça söylemek gerekirse, alaycı yan çubuklar olmadan: EVET. Python'un daha yeni bir sürümünü, listelediğiniz gibi kaynaktan / opt içine kurabilirsiniz. Ya da varsayılan olarak / usr / local / {bin, lib, share, man} içine giriyor ve bu da harika çalışıyor ve yine de CentOS 5'teki sürüm olan python 2.4'e müdahale etmeyecek. CentOS 6, python 2.6.6 ile birlikte geliyor.
IcarusNM

Yanıtlar:


79

EPEL deposunu da kullanabilir ve ardından sudo yum install python26python 2.6'yı yükleyebilirsiniz.


8
EPEL nasıl kullanılır: fedoraproject.org/wiki/EPEL/FAQ#howtouse - Ancak i386'yı 32 bit x86 değilse kemerinizle değiştirmeyi unutmayın
rakslice

Benim için çalıştı! Bunlara başka bir proje için de ihtiyacım vardı, bu yüzden iki kat mutluyum!
rholmes

2
Python 2.6 artık epel'de değil gibi görünüyor.
mujimu

1
@mujimu, sanırım 2.6'yı 2.4'ün üzerinde varsayılan yapmış olabilirler. Bu nedenle, benzer komutlar yum install python26yalnızca yum install pythonişletim sisteminin çeşidine / sürümüne bağlı olabilir .
James Oravec

31

Epel'i deneyin

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 çalıştırılabilir dosyası şu adreste bulunacaktır: /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

Şimdi, pythonkomut çalıştırılacakpython 2.6


Son kısım için teşekkürler - python26'yı yeni yükledim ve 'varsayılan' (2.4) 'ü 2.6.1'e nasıl atayacağımı merak ediyordum. Bir sembolik bağ oluşturmak ve yolu ayarlamak bunu yaptı.
Jay Sidri

Bu besbelli ... bir kullanıcı için işe yarar ... biri python2.6'yı 3.0 veya her neyse ile değiştirene kadar ... ama bunu yapmanın önerilen yolu bu gibi görünüyor. CentOS'un eşzamanlı olarak yüklenen çeşitli paketlerin sürümünü seçmek için bir araçla gelmediğine inanmakta güçlük çekiyorum (genellikle Java, PostgreSQL ve şimdi python'un 2 sürümüyle karşılaşıyorum), configure_python -s 2.6 ve her şey "sihirli" gibi bir şey Kullanıcının yıllar içinde köşe kasaları düşünmesine gerek kalmadan perdelerin arkasında yerine oturur.
Tomislav Nakic-Alfirevic

Sanırım nedeni, esas olarak sunucular için kullanılan bir kurumsal işletim sistemi olduğundan, insanların Cent OS üzerinde fazla geliştirme yapmamasıdır. Her şey doğru bir şekilde yapılandırıldıktan sonra, ara sıra güvenlik güncellemeleri olmadıkça sunucuya dokunmazlar.
Joyce Babu

1
@ TomislavNakic-Alfirevic Henüz denemedim ama github.com/yyuu/pyenv umut verici görünüyor. Her şeyi kaynaktan oluşturur ve her sürümü kendi dizinine yükler. Görünüşe göre geliştiricilerin kendi ana dizinlerine yüklemesi için daha çok hedeflenmiş gibi görünüyor, ancak yapılar sudo olarak çalıştırılabilir ve paylaşılan bir dizini hedefleyebilir.
Mark Evans

@MarkEvans Python gerçekten güçlü yanım değil, bu yüzden kolayca yanılabilirim, ancak pyenv farklı bir problem için bir çözüm gibi görünüyor. "Python" u "JDK" ile değiştirirseniz, onu sadece bir Java uygulamasını dağıtabilmek için derlemekten kesinlikle memnun olmazdım: Başka birinin hangi sürümle birlikte derlediği, test ettiği, yeniden test ettiği ve tekrar test ettiği JDK sürümünü istiyorum. CentOS kullanıyorum. Aynı mantığı Python'a uygulama eğilimindeyim. Bununla birlikte, pyenv'in dev gibi parladığı kullanım durumları olduğundan eminim. (dağıtımın aksine) makineler.
Tomislav Nakic-Alfirevic

28

Benzer durumlarla karşılaştığımda, genellikle paket yöneticisinden kaçınırım, özellikle de bir şeyi, yani bir üretim sunucusunu kırmak utanç verici olacaksa. Bunun yerine, Activestate'e gidip ikili paketlerini indirirdim:

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

Bu, her şeyi bir klasöre yerleştiren ve herhangi bir sistem dosyasına dokunmayan bir komut dosyası çalıştırılarak yüklenir. Aslında, onu kurmak için kök izinlerine bile ihtiyacınız yok. Sonra ikilinin adını apy26 gibi bir şeye değiştiriyorum, bu klasörü PATH'nin sonuna ekliyorum ve kodlamaya başlıyorum. Paketleri apy26 setup.py installvirtualenv ve easyinstall ile kurarsanız veya kullanırsanız, sistem standardı python'a dokunmadan ihtiyaç duyduğunuz kadar esnek bir python ortamına sahip olursunuz.

Düzenlemeler ... Son zamanlarda Linux için, harici bağımlılıkları olmayan herhangi bir dağıtımda çalışması gereken taşınabilir bir Python ikili dosyası oluşturmak için bazı çalışmalar yaptım. Bu, taşınabilir Python modülünün ihtiyaç duyduğu tüm ikili paylaşılan kitaplıkların yapının bir parçası olduğu, tarball'a dahil edildiği ve Python'un özel dizin yapısına yüklendiği anlamına gelir. Bu şekilde, Python yüklü sisteme müdahale etmeden uygulamanız için Python kurabilirsiniz.

Github sitemde Ubuntu Lucid 10.04 LTS üzerinde hem 32 hem de 64 bit kurulumlarında kapsamlı bir şekilde test edilmiş bir derleme betiği var. Bunu Debian Etch üzerinde de oluşturdum ama bu bir süre önceydi ve bir şeyi değiştirmediğimi garanti edemem. Bunu yapmanın en kolay yolu, Ubuntu Lucid seçiminizi sanal bir makineye koymak, komut dosyasını kontrol etmek git clone git://github.com/wavetossed/pybuild.gitve ardından komut dosyasını çalıştırmaktır.

Oluşturduktan sonra, son Linux dağıtımlarında tarball'ı kullanın. Dizini taşımadan ÖNCE yorumlayıcı yolunu ayarlamak için /data1/packages/python272dahil patchelfedileni çalıştırmanız gerektiğinden başka bir dizine taşımakla ilgili küçük bir kırışıklık var . Bu, içindeki tüm ikili dosyaları etkiler/data1/packages/python272/bin

Tüm bunlar, RUNPATH ile oluşturmaya ve bağımlı paylaşılan kitaplıkları kopyalamaya dayanmaktadır. Betik birkaç dosyada olsa da, /etc/rc.d dizinleri tarzında düzenlenmiş etkin bir şekilde uzun bir kabuk betiğidir.


4
Geçmişte lisansın ne olduğunu bilmiyorum, ancak maalesef şimdi Business Edition'ı ($$$) satın almadığınız sürece ActivePython'u dışarıya bakan sunucularda kullanmanıza izin vermiyor. activestate.com/compare-editions
Nate

2
Paket yöneticisiyle bir sunucuyu bozmamak için üçüncü taraf sağlayıcının komut dosyalarına mı güveniyorsunuz? ha
akostadinov

27

Yum yapmanıza veya kendi RPM'nizi oluşturmanıza gerek yok. İnşa python26kaynaktan.

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

Bir olamaz bağımlılık hatası kullanımı

yum install gcc cc

Yükleme yolunu ( /usr/local/bin/pythonvarsayılan olarak) öğesine ekleyin ~/.bash_profile.

Kırılmayacak yumya da bağlı olan başka şeyler olmayacak python24.


1
Not: Bunun çalışması için AC derleyici gereklidir. CentOS 5 ile hisse senedi geliyor gibi görünmüyor (en azından benimki PATH'de yok)
Cody S

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

24

Hayır işte bu. Tüm isteğe bağlı kitaplık başlıklarının da kurulu olduğundan emin olmak isteyebilirsiniz, böylece daha sonra yeniden derlemenize gerek kalmaz. Sanırım belgelerde listeleniyorlar.

Ayrıca, yaparsanız standart yolda bile kurabilirsiniz make altinstall. Bu şekilde mevcut varsayılan "python" unuzu geçersiz kılmaz.


4
wget python.org/ftp/python/2.6.6/Python-2.6.6.tgz sonra ./configure them make altinstall
Olivier Refalo

12

Chris Lea , CentOS'ta epeyce yönetici aracı için gerekli olan 'yerel' 2.4 ile birlikte var olabilen python26 RPM'ler için bir YUM deposu sağlar.

En azından benim için işe yarayan hızlı talimatlar:

$ 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
Bu, CentOS 5.4 altında çalışmadı: Python26 paketi mevcut değil.
Joseph Turian


3

Python sürümünüzü yüklediğinizde (bu durumda, python2.6'dır), ardından aşağıdakileri oluşturmak için bu komutu çalıştırın virtualenv:

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

2

Partiye Geç ama OP gitmeliydik kurulumları sona veya VIRTUALENV ve sorunu tamamen kaçınmakla.

Şu anda bir Centos sunucusu üzerinde çalışıyorum, işten uzaklaşmak uygun bir terimdir ve herkese, yangına dayanıklı mızrakların yazılım eşdeğerlerini kullanırken gözyaşlarını geri alabilmemin tek yolunun inşa etmek olduğunu söyleyebilirim.


2
sadece python2.4 kurulu olduğunda python2.6'yı kurmak için virtualenv'i kullanabilir misiniz?
Collin Anderson

Kesinlikle. Sanırım virtualenv'de --no-site-packages seçeneğini kullanın veya buildout'ta bir python inşa edin.
chiggsy

HAYIR, virtualenv yalnızca python modülleri / paketleri ve bunların sürümleriyle ilgilenir. Hala çalışan bir python yorumlayıcı ikilisine (zaten sistemde) işaret edilmesi gerekiyor.
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

sadece bilmeyen dos için: =)


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'ı indirin ve yükleyin

# 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 için Distribute'u indirin ve yükleyin

# 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

Python 3.3 için virtualenv'i kurun ve kullanın

# 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'un (2.6.6) orijinal sürümünü make && make altinstallkaldırdım ve 2.7'yi (seçenekli ) yükledim ancak yum ile bir şey yüklemeyi denediğimde işe yaramadı.

Bu yüzden bu sorunu şu şekilde çözdüm:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Python-2.6.6-36.el6.i686.rpm RPM paketini http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6 adresinden indirin. 6-36.el6.i686.rpm.html
  3. Kök olarak çalıştır rpm -Uvh python-2.6.6-36.el6.i686.rpm

Bitti


-1

CentOS 7'ye Python 3.6 yüklemek için terminale aşağıdaki komutları yazın:

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

O zaman yap:

$ sudo yum install python36u 

3.6 yerine herhangi bir sürümü (isterseniz) yalnızca 36'yı sürüm numaranızla değiştirerek yükleyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.