2009-09-23 49 views
83

Tôi có một trình bao chạy CentOS.Cài đặt python 2.6 trong CentOS

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

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

Tôi muốn cài đặt 2,5 riêng biệt từ 2,4, nhưng tôi không chắc chắn cách thực hiện. Cho đến nay tôi đã tải về các tarball nguồn, untarred nó, và đã làm một ./configure --prefix=/opt đó là nơi tôi muốn nó kết thúc. Tôi có thể bây giờ chỉ make, make install? Hoặc là có nhiều hơn?

+8

Cá nhân tôi đã từng sử dụng CentOS rất nhiều và thực hiện chuyển sang Ubuntu vì các bản phân phối RedHat/CentOS phân tán như thế nào (Python 2.4 ...). Nếu bạn chính trị có thể nhảy, hãy làm đi. 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. –

+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, thậm chí tốt hơn, centos rác và cài đặt debian: P –

+19

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

Trả lời

24

Không, đúng vậy. Bạn có thể muốn đảm bảo rằng bạn đã cài đặt tất cả các tiêu đề thư viện tùy chọn để bạ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 chuẩn nếu bạn thực hiện make altinstall. Bằng cách đó, nó sẽ không ghi đè "python" mặc định hiện tại của bạn.

+12

+1: 'sudo make altinstall' – jfs

+3

wget http://www.python.org/ftp/ python/2.6.6/Python-2.6.6.tgz sau đó ./configure chúng làm cho altinstall –

12

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

hướng dẫn nhanh mà làm việc ít nhất là đối 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 theo CentOS 5.4: Không có gói python26 nào khả dụng. –

+3

Đã không hoạt động trên CentOS 5.5: Thiếu phụ thuộc: libffi.so.5 –

+0

sẽ làm việc này trên centOs? – Charlesliam

28

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

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

này được cài đặt bằng cách chạy một kịch bản mà đặt tất cả mọi thứ vào một thư mục và không chạm vào bất kỳ tập tin hệ thống. Trong thực tế, bạn thậm chí không cần quyền root để thiết lập nó. Sau đó, tôi đổi tên nhị phân thành 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 với apy26 setup.py install hoặc nếu bạn sử dụng virtualenv và easyinstall, thì bạn 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 hệ thống chuẩn python.

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 nhị phân Python di động cho Linux sẽ chạy trên bất kỳ bản phân phối nào không có phụ thuộc bên ngoài. Điều này có nghĩa rằng bất kỳ thư viện chia sẻ nhị phân nào cần thiết bởi mô-đun Python di động 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 bạn mà không can thiệp vào hệ thống đã cài đặt Python.

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

Khi bạn đã xây dựng, 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 chút nhăn với di chuyển nó vào một thư mục khác hơn /data1/packages/python272 đó là bạn phải chạy bao gồm patchelf để thiết lập đườ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ỳ tệp nhị phân nào trong /data1/packages/python272/bin

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

+4

Tôi không biết giấy phép là gì trong quá khứ, nhưng tiếc là hiện tại 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 Ấn bản kinh doanh ($$$). https://www.activestate.com/compare-editions – Nate

+2

để tránh vi phạm 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

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, toiling sẽ là thời hạn 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ể chớp mắt lại trong khi sử dụng phần mềm tương đương của ngọn lửa cứng xây dựng ra.

+2

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

+0

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

+0

KHÔNG, virtualenv chỉ giao dịch với các mô-đun/gói python và các phiên bản của chúng.Nó vẫn cần phải được chỉ vào một nhị phân thông dịch python đang hoạt động (đã có trên hệ thống). –

77

Bạn cũng có thể sử dụng EPEL-repository, và sau đó làm sudo yum install python26 để cài đặt python 2,6

+8

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

+0

Làm việc cho tôi! Tôi cũng cần những dự án này cho một dự án khác, vì vậy tôi rất hạnh phúc! – rholmes

+1

dường như Python 2.6 không còn trong epel nữa. – mujimu

25

Không cần phải làm yum hay làm RPM của riêng bạn. Xây dựng python26 từ 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ó một phụ thuộc lỗi sử dụng

yum install gcc cc 

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

Nó sẽ không vi phạm yum hoặc bất kỳ thứ nào khác phụ thuộc vào python24.

+1

Lưu ý: Trình biên dịch C là bắt buộc để làm việc này. Nó không giống như một cổ phiếu đi kèm với CentOS 5 (ít nhất, tôi không có một trên PATH) –

+0

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

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

31

Hãy 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 

Các python thực thi sẽ có mặt 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ờ, python lệnh sẽ thực hiện python 2.6

+0

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

+0

Điều này rõ ràng sẽ làm việc ... cho một người dùng ... cho đến khi một thay thế python2.6 với 3.0 hoặc bất cứ điều gì ... nhưng nó dường như là cách được đề nghị để thực hiện việc này. Tôi 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 để sử dụng (tôi thường gặp 2 phiên bản Java, PostgreSQL và bây giờ là python), giống như configure_python -s 2.6 và mọi thứ " kỳ diệu "rơi vào vị trí phía sau màn cửa, mà không cần người dùng phải suy nghĩ về trường hợp góc năm trong tương lai. –

+0

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 các máy chủ, mọi người không phát triển nhiều trên hệ điều hành Cent. Sau khi mọi thứ được cấu hình đúng, chúng không chạm vào máy chủ trừ khi cập nhật bảo mật không thường xuyên. –

0

Tôi unistalled phiên bản gốc của python (2.6.6) và cài đặt 2.7 (với tùy chọn make && make altinstall) nhưng khi tôi đã cố gắng cài đặt một cái gì đó với yum đã không làm việc.

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 python-2.6.6-36.el6.i686 gói RPM.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. Execute như là người chủ rpm -Uvh python-2.6.6-36.el6.i686.rpm

Xong

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

Tải về 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 về và cài đặt Distribute 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 
3

Khi bạn cài đặt phiên bản python của bạn (trong trường hợp này nó là python2.6) sau đó thực hiện lệnh này để tạo ra của bạn virtualenv:

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

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 thay vì 3,6 (nếu bạn muốn) bằng cách chỉ thay thế 36 bởi số phiên bản của bạn.

Các vấn đề liên quan