2008-09-27 25 views
8

Tôi muốn cách nâng cấp cài đặt python mặc định (2.5.2) được cung cấp với ubuntu 8.04 lên python 2.6rc2. Tôi muốn tạo 2.6 phiên bản python mặc định trên hệ thống và di chuyển tất cả các thư viện python đã cài đặt hữu ích khác được cài đặt trên 2.5.2 sang python 2.6rc2. Xin vui lòng cho tôi biết làm thế nào tôi có thể đạt được điều này.Làm cách nào để nâng cấp python 2.5.2 lên python 2.6rc2 trên Ubuntu 8.04?

Cảm ơn Dirk

+0

Đó là một ý tưởng thực sự xấu để thay thế cài đặt python mặc định. Chỉ cần cài đặt python 2,6 trong một thư mục khác. – nosklo

Trả lời

15

Với sự cảnh báo mà tôi nghĩ rằng đó là một ý tưởng rất xấu để thay thế cho Python mặc định với một phiên bản beta chưa được phát hành:

Đầu tiên, cài đặt 2.6rc2. Bạn có thể tải xuống mã nguồn từ số Python website. Tiêu chuẩn cài đặt ./configure && make && sudo make install.

Tiếp theo, xóa liên kết tượng trưng /usr/bin/python. Làm không xóa /usr/bin/python2.5. Thêm liên kết tượng trưng vào 2.6 với ln -s /usr/local/bin/python2.6 /usr/bin/python.

Một lần nữa, tôi nghĩ đây là một ý tưởng tồi tệ. Có gần như chắc chắn là một cách tốt hơn để làm bất cứ điều gì bạn đang cố gắng để thực hiện.


Di chuyển thư viện được cài đặt là một quá trình lâu hơn. Tìm trong các thư mục /usr/lib/python2.5/site-packages//usr/local/lib/python2.5/site-packages/. Bất kỳ thư viện nào được cài đặt cho chúng sẽ cần phải được cài đặt lại với 2.6. Vì bạn không sử dụng phiên bản Python đóng gói, bạn không thể sử dụng các gói của Ubuntu - bạn sẽ phải tự nâng cấp tất cả các thư viện. Hầu hết trong số họ có thể có thể được cài đặt với sudo easy_install <name>, nhưng một số giống như PyGTK + không phải là dễ dàng như vậy. Bạn sẽ phải làm theo các thủ tục cài đặt tùy chỉnh cho mỗi thư viện như vậy.

+0

sẽ là tùy chọn biên dịch mặc định không chỉ thêm nó vào/usr/local/bin (mà sau đó anh ta có thể đổi tên thành python26), trong khi rời khỏi/usr/bin symlink trỏ đến python2.5? – unmounted

+0

Nó phổ biến cho các kịch bản lệnh shell sử dụng #!/Usr/bin/python, thay vì #!/Usr/bin/env python. Bởi vì nếu điều này, liên kết trong/usr/bin phải được thay thế. –

+0

Trên thực tế, cách chính xác (nếu bạn đang nhắm mục tiêu một phiên bản cụ thể) là #!/Usr/bin/env python2.6 –

1

Có cần thiết không?

Ubuntu nói chung không gói bản phát hành RC. 2.6 sẽ không có sẵn trong Ubuntu cho đến khi Jaunty Jackalope.

Tuy nhiên, nếu bạn nhấn mạnh rằng bạn cần phải cài đặt, thì bạn sẽ phải làm như vậy mà không cần trình quản lý gói.

Tải gói và giải nén nó vào một thư mục

chạy các lệnh sau (chờ đợi từng để kết thúc như bạn làm như vậy)

./configure 
make 
sudo make install 

Ở đó, bạn có nó được cài đặt.

Nó tốt hơn để chờ đợi cho nó được đóng gói đầu tiên, Điểm đáng lưu ý như Python được sử dụng trong rất nhiều internals ubuntu, như vậy có thể phá vỡ hệ thống của bạn khủng khiếp

1

Sẽ không khôn ngoan để thay đổi phiên bản mặc định của Python, tức là những gì bạn nhận được khi bạn gõ "python" vào một trình bao. Tuy nhiên, bạn có thể cài đặt nhiều phiên bản python. Bí quyết là đảm bảo rằng chương trình có tên "python" trên đường dẫn là phiên bản do hệ thống cung cấp. Nếu bạn muốn chạy bản cài đặt Python 2.6 thì bạn hãy gõ python2.6 vào một trình bao để bắt đầu nó.

Tải gói và giải nén nó, sau đó chạy:

./configure 
make 
sudo make install 
ls -l /usr/local/bin 

Bạn sẽ thấy một con trăn và một tập tin python2.6, cả hai tạo ra vào ngày bạn chạy make install; xóa tệp python.Sau đó, khi python được khởi chạy, phiên bản Python hệ thống chuẩn từ /usr/bin sẽ được chạy và khi python2.6 chạy, bạn sẽ có được python mới sáng bóng 2.6rc2. Python hiển thị phiên bản khi nó bắt đầu một trình thông dịch tương tác.

6

Tôi có cùng một vấn đề, và những chương trình rõ ràng trước xây dựng có thể được tìm thấy ở đây:

# Python 2.6 
deb http://ppa.launchpad.net/doko/ubuntu intrepid main 
deb-src http://ppa.launchpad.net/doko/ubuntu intrepid main 
+1

Đã thêm các dòng này vào /etc/apt/sources.list của tôi và đã đưa ra một '' sudo apt-get update && sudo apt-get install python2.6'' trả về sau: '' Các gói sau có phụ thuộc chưa được đáp ứng: python2 .6: Phụ thuộc: libsqlite3-0 (> = 3.5.9) nhưng 3.4.2-2 sẽ được cài đặt''. Nếu không đi xa hơn nữa, có vẻ như đây sẽ là một quá trình khá dài có thể phá vỡ các gói và phụ thuộc khác. Ít nhất là trên Ubuntu 8.04. – Flowpoke

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