Cài đặt python 2.6 trong CentOS


85

Tôi có một trình bao chạy CentOS.

Đối với một dự án tôi đang làm, tôi cần python 2.5+, nhưng centOS khá phụ thuộc vào 2.4.

Từ những gì tôi đã đọc, một số điều sẽ hỏng nếu bạn nâng cấp lên 2,5.

Tôi muốn cài đặt riêng 2.5 từ 2.4, nhưng tôi không biết chắc cách thực hiện. Cho đến nay, tôi đã tải xuống tarball mã nguồn, không đánh dấu nó và đã thực hiện ./configure --prefix=/optđó là nơi tôi muốn nó kết thúc. Bây giờ tôi có thể chỉ make, make install? Hay là có nhiều hơn nữa?


8
Cá nhân tôi đã từng sử dụng CentOS rất nhiều và đã chuyển sang Ubuntu vì các bản phân phối RedHat / CentOS quá tệ như thế nào (Python 2.4 ...). Nếu bạn có thể thực hiện một bước nhảy vọt về mặt chính trị, hãy làm điều đó. Bạn sẽ hạnh phúc hơn nhiều và sẽ không phải lo lắng về loại điều này nữa.
Adam Nelson

1
Biên dịch từ nguồn và cài đặt chúng trong /usr/local(mặc định) sẽ không gây ra bất kỳ sự cố nào. Hoặc, tốt hơn nữa, hãy dọn rác centos và cài đặt debian: P
o0 '.

19
Huh? Điểm của CentOS / RHEL là hỗ trợ lâu dài. Nếu có tùy chọn chuyển sang bản phân phối mới nhất thì việc chuyển sang Fedora sẽ có ý nghĩa hơn nhiều so với chuyển sang Ubuntu cho người có nền tảng CentOS.
Muhammad Alkarouri

1
Chỉ để rõ ràng, không có bất kỳ thanh bên châm biếm nào: CÓ. Bạn có thể cài đặt phiên bản Python mới hơn, từ nguồn, vào / opt giống như bạn đã liệt kê. Hoặc theo mặc định, nó đi vào / usr / local / {bin, lib, share, man} cũng hoạt động tốt và sẽ không ảnh hưởng đến python 2.4, đây VẪN là phiên bản trong CentOS 5. CentOS 6 đi kèm với python 2.6.6.
IcarusNM

Câu trả lời:


79

Bạn cũng có thể sử dụng EPEL-repository , sau đó sudo yum install python26cài đặt python 2.6


8
Làm thế nào để sử dụng EPEL: fedoraproject.org/wiki/EPEL/FAQ#howtouse - Nhưng hãy nhớ để thay thế cho i386 với vòm của bạn nếu nó không phải là 32-bit x86
rakslice

Đã làm cho tôi! Tôi cũng cần những thứ này cho một dự án khác nên tôi rất vui!
rholmes

1
Có vẻ như Python 2.6 không còn trong epel.
mujimu

1
@mujimu, tôi nghĩ rằng họ có thể đặt 2,6 làm mặc định trên 2,4. Vì vậy, các lệnh như yum install python26có thể chỉ yum install pythontùy thuộc vào hương vị / phiên bản hệ điều hành.
James Oravec

31

Thử 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

Tệp thực thi python sẽ có sẵn tại /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

Bây giờ, pythonlệnh sẽ thực thipython 2.6


Cảm ơn vì chút cuối cùng - tôi vừa cài đặt python26 và đang tự hỏi làm thế nào để đặt 'mặc định' (2.4) tham chiếu đến 2.6. Tạo một liên kết tượng trưng và điều chỉnh đường dẫn đã làm được.
Jay Sidri

Điều này rõ ràng sẽ hoạt động ... cho một người dùng ... cho đến khi một người thay thế python2.6 bằng 3.0 hoặc bất cứ thứ gì ... nhưng nó có vẻ là cách được khuyến nghị để hoàn thành việc này. Tôi đang gặp khó khăn khi tin rằng CentOS không đi kèm với một công cụ để chọn phiên bản của nhiều gói được cài đặt đồng thời khác nhau để sử dụng (tôi thường gặp 2 phiên bản Java, PostgreSQL và bây giờ là python), một cái gì đó như config_python -s 2.6 và mọi thứ "kỳ diệu" rơi vào vị trí phía sau rèm cửa, mà người dùng không cần phải suy nghĩ về các trường hợp góc trong nhiều năm trong tương lai.
Tomislav Nakic-Alfirevic 13/12/12

Tôi nghĩ lý do là, là một hệ điều hành doanh nghiệp chủ yếu được sử dụng cho máy chủ, mọi người không phát triển nhiều trên Cent OS. Khi mọi thứ được định cấu hình chính xác, chúng sẽ không chạm vào máy chủ trừ khi thỉnh thoảng cập nhật bảo mật.
Joyce Babu

1
@ TomislavNakic-Alfirevic Tôi chưa thử, nhưng github.com/yyuu/pyenv có vẻ đầy hứa hẹn. Nó xây dựng mọi thứ từ nguồn và cài đặt từng phiên bản trong thư mục riêng của nó. Có vẻ như nó được nhắm mục tiêu nhiều hơn cho việc cài đặt của các nhà phát triển trong thư mục chính của họ, nhưng các bản dựng có thể được chạy dưới dạng sudo và nhắm mục tiêu đến một thư mục chia sẻ.
Mark Evans

@MarkEvans Python thực sự không phải là điểm mạnh của tôi, vì vậy tôi có thể dễ dàng sai, nhưng pyenv có vẻ như một giải pháp cho một vấn đề khác. Nếu bạn thay thế "python" bằng "JDK", tôi chắc chắn sẽ không vui mừng về việc biên dịch nó chỉ để có thể triển khai một ứng dụng Java: Tôi muốn phiên bản JDK mà người khác đã biên dịch, kiểm tra, kiểm tra lại và kiểm tra lại với phiên bản đã từng có của CentOS tôi đang sử dụng. Tôi sẽ có xu hướng áp dụng cùng một logic cho Python. Điều đó nói rằng, tôi chắc chắn rằng có những trường hợp sử dụng mà pyenv tỏa sáng, chẳng hạn như dev. (trái ngược với triển khai) máy móc.
Tomislav Nakic-Alfirevic

28

Khi tôi gặp phải những tình huống tương tự, tôi thường tránh trình quản lý gói, đặc biệt nếu việc phá vỡ một thứ gì đó, tức là một máy chủ sản xuất sẽ rất xấu hổ. Thay vào đó, tôi sẽ vào Activestate và tải xuống gói nhị phân của họ:

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

Điều này được cài đặt bằng cách chạy một tập lệnh đặt mọi thứ vào một thư mục và không chạm vào bất kỳ tệp hệ thống nào. Trên thực tế, bạn thậm chí không cần quyền root để thiết lập nó. Sau đó, tôi thay đổi tên của tệp nhị phân thành một cái gì đó như apy26, thêm thư mục đó vào cuối PATH và bắt đầu viết mã. Nếu bạn cài đặt các gói có apy26 setup.py installhoặc nếu bạn sử dụng virtualenv và easyinstall, thì bạn sẽ có một môi trường python linh hoạt như bạn cần mà không cần chạm vào python tiêu chuẩn hệ thống.

Các chỉnh sửa ... Gần đây tôi đã thực hiện một số công việc để xây dựng một tệp nhị phân Python di động cho Linux sẽ chạy trên bất kỳ bản phân phối nào mà không có phụ thuộc bên ngoài. Điều này có nghĩa là bất kỳ thư viện chia sẻ nhị phân nào được mô-đun Python di động cần thiết đều là một phần của bản dựng, được bao gồm trong tarball và được cài đặt trong cấu trúc thư mục riêng của Python. Bằng cách này, bạn có thể cài đặt Python cho ứng dụng của mình mà không can thiệp vào hệ thống đã cài đặt Python.

Trang github của tôi có tập lệnh xây dựng đã được kiểm tra kỹ lưỡng trên Ubuntu Lucid 10.04 LTS cả bản cài đặt 32 và 64 bit. Tôi cũng đã xây dựng nó trên Debian Etch nhưng đó là cách đây một thời gian và tôi không thể đảm bảo rằng tôi đã không thay đổi điều gì đó. Cách dễ nhất để làm điều này là bạn chỉ cần đặt lựa chọn Ubuntu Lucid của mình vào một máy ảo, kiểm tra tập lệnh với git clone git://github.com/wavetossed/pybuild.gitvà sau đó chạy tập lệnh.

Khi bạn đã xây dựng nó, hãy sử dụng tarball trên bất kỳ bản phân phối Linux nào gần đây. Có một vấn đề nhỏ khi chuyển nó sang một thư mục khác /data1/packages/python272là bạn phải chạy phần mềm đi kèm patchelfđể đặt đường dẫn thông dịch TRƯỚC KHI bạn di chuyển thư mục. Điều này ảnh hưởng đến bất kỳ mã nhị phân nào trong/data1/packages/python272/bin

Tất cả điều này đều dựa trên việc xây dựng với RUNPATH và sao chép các thư viện được chia sẻ phụ thuộc. Mặc dù tập lệnh nằm trong một số tệp, nó thực sự là một tập lệnh shell dài được sắp xếp theo kiểu thư mục /etc/rc.d.


4
Tôi không biết giấy phép trước đây là gì, nhưng tiếc là bây giờ nó không cho phép bạn sử dụng ActivePython trên các máy chủ bên ngoài trừ khi bạn mua phiên bản Business Edition ($$$). activestate.com/compare-editions
Nate

2
để tránh phá vỡ một máy chủ với trình quản lý gói, bạn dựa vào tập lệnh của nhà cung cấp bên thứ ba? huh
akostadinov

26

Không cần phải làm yum hoặc tạo RPM của riêng bạn. Xây dựng python26từ nguồn.

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

Có thể có lỗi sử dụng phụ thuộc

yum install gcc cc

Thêm đường dẫn cài đặt ( /usr/local/bin/pythontheo mặc định) vào ~/.bash_profile.

Nó sẽ không bị vỡ yumhoặc bất kỳ thứ nào khác phụ thuộc vào python24.


1
Lưu ý: Cần có trình biên dịch AC để hoạt động này. Có vẻ như một cái có sẵn với CentOS 5 (ít nhất, tôi không có cái nào trên PATH)
Cody S

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

24

Không, chính là nó. Bạn có thể muốn đảm bảo rằng bạn cũng đã cài đặt tất cả các tiêu đề thư viện tùy chọn để không phải biên dịch lại nó sau này. Chúng được liệt kê trong tài liệu tôi nghĩ.

Ngoài ra, bạn có thể cài đặt nó ngay cả trong đường dẫn tiêu chuẩn nếu bạn làm như vậy make altinstall. Bằng cách đó, nó sẽ không ghi đè "python" mặc định hiện tại của bạn.


4
wget python.org/ftp/python/2.6.6/Python-2.6.6.tgz sau đó ./configure họ đưa ra altinstall
Olivier Refalo

12

Chris Lea cung cấp kho lưu trữ YUM cho python26 RPM có thể cùng tồn tại với 2.4 'gốc' cần thiết cho một số công cụ quản trị trên CentOS.

Hướng dẫn nhanh ít nhất đã hiệu quả với tôi:

$ 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
Điều này không hoạt động trong CentOS 5.4: Không có gói python26 nào khả dụng.
Joseph Turian


3

Khi bạn cài đặt phiên bản python của mình (trong trường hợp này là python2.6), hãy sử dụng lệnh này để tạo virtualenv:

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

2

Muộn để đảng, nhưng OP nên đã đi với buildout hoặc virtualenv , và tránh né những vấn đề hoàn toàn.

Tôi hiện đang làm việc trên một máy chủ Centos, tốt, vất vả sẽ là thuật ngữ thích hợp và tôi có thể đảm bảo với mọi người rằng cách duy nhất tôi có thể gạt nước mắt trong khi sử dụng phần mềm tương đương với ngọn giáo cứng lửa, là xây dựng.


2
bạn có thể sử dụng virtualenv để cài đặt python2.6 khi chỉ cài đặt python2.4 không?
Collin Anderson

Chắc chắn. Tôi tin rằng sử dụng tùy chọn --no-site-pack trong virtualenv hoặc xây dựng một python trong bản buildout.
chiggsy

KHÔNG, virtualenv chỉ xử lý các mô-đun / gói python và các phiên bản của chúng. Nó vẫn cần được trỏ đến một nhị phân trình thông dịch python đang hoạt động (đã có trên hệ thống).
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

cho dos mà chỉ không biết: =)


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

Tải xuống và cài đặt 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

Tải xuống và cài đặt Phân phối cho 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

Cài đặt và sử dụng virtualenv cho 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

Tôi đã gỡ phiên bản gốc của python (2.6.6) và cài đặt 2.7 (có tùy chọn make && make altinstall) nhưng khi tôi thử cài đặt thứ gì đó với yum không hoạt động.

Vì vậy, tôi đã giải quyết vấn đề này như sau:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Tải xuống gói RPM python-2.6.6-36.el6.i686.rpm từ http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6. 6-36.el6.i686.rpm.html
  3. Thực thi dưới quyền root rpm -Uvh python-2.6.6-36.el6.i686.rpm

Làm xong


-1

Nhập các lệnh sau trên thiết bị đầu cuối để cài đặt Python 3.6 trên CentOS 7:

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

Sau đó làm:

$ sudo yum install python36u 

Bạn cũng có thể cài đặt bất kỳ phiên bản nào thay vì 3.6 (nếu bạn muốn) bằng cách thay thế 36 bằng số phiên bản của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.