ติดตั้ง 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 ... ) หากคุณสามารถก้าวข้ามทางการเมืองได้ให้ทำ คุณจะมีความสุขมากขึ้นและไม่ต้องกังวลกับเรื่องประเภทนี้อีกต่อไป
Adam Nelson

1
คอมไพล์จากซอร์สและติดตั้งใน/usr/local(ค่าเริ่มต้น) ไม่ควรทำให้เกิดปัญหาใด ๆ หรือที่ดีกว่าคือทิ้ง centos และติดตั้ง debian: P
o0 '

19
ฮะ? ประเด็นของ CentOS / RHEL คือการสนับสนุนระยะยาว หากมีตัวเลือกในการเปลี่ยนไปใช้การแจกจ่ายล่าสุดการเปลี่ยนไปใช้ Fedora นั้นสมเหตุสมผลกว่าการเปลี่ยนไปใช้ Ubuntu สำหรับคนที่มีพื้นหลัง CentOS
Muhammad Alkarouri

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 ด้วย arch ของคุณหากไม่ใช่ 32-bit x86
rakslice

ทำงานให้ฉัน! ฉันต้องการสิ่งเหล่านี้สำหรับโครงการอื่นด้วยดังนั้นฉันจึงมีความสุขเป็นสองเท่า!
rholmes

2
ดูเหมือนว่า 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 ได้อย่างไร การสร้าง symlink และการปรับเส้นทางทำได้
Jay Sidri

เห็นได้ชัดว่าจะใช้งานได้ ... สำหรับผู้ใช้คนหนึ่ง ... จนกว่าคนหนึ่งจะแทนที่ python2.6 ด้วย 3.0 หรืออะไรก็ตาม ... แต่ดูเหมือนว่าจะเป็นวิธีที่แนะนำในการทำให้เสร็จ ฉันมีปัญหาในการเชื่อว่า CentOS ไม่ได้มาพร้อมกับเครื่องมือในการเลือกเวอร์ชันของแพ็คเกจต่างๆที่ติดตั้งพร้อมกันเพื่อใช้งาน (ฉันมักจะพบ Java 2 เวอร์ชันคือ PostgreSQL และตอนนี้ python) บางอย่างเช่น config_python -s 2.6 และทุกอย่าง "น่าอัศจรรย์" เข้าที่หลังผ้าม่านโดยที่ผู้ใช้ไม่ต้องคิดถึงกรณีมุมอีกหลายปีในอนาคต
Tomislav Nakic-Alfirevic

ฉันคิดว่าเหตุผลก็คือการเป็นระบบปฏิบัติการระดับองค์กรที่ใช้กับเซิร์ฟเวอร์เป็นหลักผู้คนจึงไม่พัฒนา Cent OS มากนัก เมื่อกำหนดค่าทุกอย่างถูกต้องแล้วจะไม่แตะต้องเซิร์ฟเวอร์เว้นแต่จะมีการอัปเดตความปลอดภัยเป็นครั้งคราว
Joyce Babu

1
@ TomislavNakic-Alfirevic ฉันยังไม่ได้ลอง แต่github.com/yyuu/pyenvดูดี สร้างทุกอย่างจากซอร์สและติดตั้งแต่ละเวอร์ชันในไดเร็กทอรีของตัวเอง ดูเหมือนว่าจะมีเป้าหมายมากกว่าสำหรับการติดตั้งของนักพัฒนาในไดเรกทอรีบ้านของตนเอง แต่การสร้างสามารถเรียกใช้เป็น sudo และกำหนดเป้าหมายไดเรกทอรีที่แชร์ได้
Mark Evans

@MarkEvans Python ไม่ใช่จุดแข็งของฉันจริงๆดังนั้นฉันอาจผิดได้ง่าย แต่ pyenv ดูเหมือนจะเป็นทางออกสำหรับปัญหาที่แตกต่างออกไป หากคุณแทนที่ "python" ด้วย "JDK" ฉันจะไม่ตื่นเต้นกับการรวบรวมเพียงเพื่อให้สามารถใช้งานแอป Java ได้: ฉันต้องการเวอร์ชัน JDK ที่มีคนอื่นรวบรวมทดสอบทดสอบซ้ำและทดสอบอีกครั้งซึ่งเคยเป็นเวอร์ชัน ของ CentOS ที่ฉันใช้ ฉันมักจะใช้ตรรกะเดียวกันกับ Python ที่กล่าวว่าฉันแน่ใจว่ามีกรณีการใช้งานที่ pyenv ส่องแสงเช่น dev (ตรงข้ามกับการปรับใช้) เครื่องจักร
Tomislav Nakic-Alfirevic

28

เมื่อฉันเจอสถานการณ์คล้าย ๆ กันฉันมักจะหลีกเลี่ยงตัวจัดการแพ็กเกจโดยเฉพาะอย่างยิ่งถ้ามันน่าอายที่จะทำลายบางอย่างเช่นเซิร์ฟเวอร์ที่ใช้งานจริง แต่ฉันจะไปที่ Activestate และดาวน์โหลดแพ็คเกจไบนารีของพวกเขา:

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

สิ่งนี้ถูกติดตั้งโดยการเรียกใช้สคริปต์ที่วางทุกอย่างลงในโฟลเดอร์และไม่แตะต้องไฟล์ระบบใด ๆ ในความเป็นจริงคุณไม่จำเป็นต้องมีสิทธิ์รูทเพื่อตั้งค่า จากนั้นฉันเปลี่ยนชื่อไบนารีเป็น apy26 เพิ่มโฟลเดอร์นั้นที่ส่วนท้ายของ PATH และเริ่มเขียนโค้ด หากคุณติดตั้งแพ็คเกจด้วยapy26 setup.py installหรือถ้าคุณใช้ Virtualenv และง่ายแสดงว่าคุณมีสภาพแวดล้อม python ที่ยืดหยุ่นเท่าที่คุณต้องการโดยไม่ต้องสัมผัสกับ python มาตรฐานของระบบ

การแก้ไข ... เมื่อเร็ว ๆ นี้ฉันได้ทำงานบางอย่างเพื่อสร้างไบนารี Python แบบพกพาสำหรับ Linux ที่ควรทำงานบน distro ใด ๆ โดยไม่มีการอ้างอิงภายนอก ซึ่งหมายความว่าไลบรารีที่ใช้ร่วมกันแบบไบนารีใด ๆ ที่จำเป็นสำหรับโมดูล 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 distro ล่าสุด มีริ้วรอยเล็กน้อยในการย้ายไปยังไดเร็กทอรีอื่นนอกเหนือจาก/data1/packages/python272ที่คุณต้องเรียกใช้รวมpatchelfเพื่อกำหนดเส้นทางล่ามก่อนที่คุณจะย้ายไดเร็กทอรี สิ่งนี้มีผลต่อไบนารีใด ๆ ใน/data1/packages/python272/bin

ทั้งหมดนี้ขึ้นอยู่กับการสร้างด้วย RUNPATH และการคัดลอกไลบรารีที่แชร์ที่อ้างอิง แม้ว่าสคริปต์จะอยู่ในหลายไฟล์ แต่ก็เป็นเชลล์สคริปต์แบบยาวที่มีประสิทธิภาพซึ่งจัดเรียงในรูปแบบของไดเร็กทอรี


4
ฉันไม่รู้ว่าใบอนุญาตในอดีตเป็นอย่างไร แต่น่าเสียดายที่ตอนนี้ไม่อนุญาตให้คุณใช้ ActivePython บนเซิร์ฟเวอร์ที่เชื่อมต่อกับภายนอกเว้นแต่คุณจะซื้อ Business Edition ($$$) activestate.com/compare-editions
Nate

2
เพื่อหลีกเลี่ยงการทำลายเซิร์ฟเวอร์ด้วยตัวจัดการแพ็คเกจคุณต้องพึ่งพาสคริปต์ของผู้ให้บริการบุคคลที่สามหรือไม่? ฮะ
akostadinov

27

ไม่จำเป็นต้องยำหรือทำ 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เพื่อ

มันจะไม่ทำลายหรือสิ่งอื่นใดที่จะขึ้นอยู่กับyumpython24


1
หมายเหตุ: คอมไพเลอร์ AC จำเป็นสำหรับการทำงานนี้ ดูเหมือนจะไม่ได้มาพร้อมกับ CentOS 5 (อย่างน้อยของฉันก็ไม่มีใน PATH)
Cody S

./configure && make && ทำการติดตั้ง alt ( 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
Olivier Refalo

12

Chris Leaจัดเตรียมที่เก็บ YUM สำหรับ python26 RPM ที่สามารถอยู่ร่วมกับ 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
Joseph Turian


3

เมื่อคุณติดตั้งเวอร์ชัน python ของคุณ (ในกรณีนี้คือ python2.6) ให้ใช้คำสั่งนี้เพื่อสร้างvirtualenv:

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

2

สายไปงานปาร์ตี้ แต่ OP ควรไปพร้อมกับBuildoutหรือVirtualenvและหลีกเลี่ยงปัญหาได้อย่างสมบูรณ์

ตอนนี้ฉันกำลังทำงานบนเซิร์ฟเวอร์ Centos การทำงานอย่างหนักน่าจะเป็นคำที่เหมาะสมและฉันสามารถรับรองกับทุกคนได้ว่าวิธีเดียวที่ฉันจะกระพริบน้ำตาในขณะที่ใช้ซอฟต์แวร์ที่เทียบเท่ากับหอกชุบไฟคือการสร้าง


2
คุณสามารถใช้ Virtualenv เพื่อติดตั้ง python2.6 เมื่อติดตั้งเฉพาะ python2.4 ได้หรือไม่
Collin Anderson

แน่นอน. ใช้ตัวเลือก --no-site-Packages ใน Virtualenv ที่ฉันเชื่อหรือสร้าง python ใน buildout
chiggsy

ไม่, Virtualenv เกี่ยวข้องกับโมดูล / แพ็คเกจ python และเวอร์ชันของมัน มันยังคงต้องชี้ไปที่ไบนารีล่ามไพ ธ อนที่ใช้งานได้ (มีอยู่แล้วในระบบ)
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

สำหรับสิ่งที่ไม่รู้: =)


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. ดำเนินการในฐานะรูท 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 ด้วยหมายเลขเวอร์ชันของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.