Redhat

在 RHEL5 上升級 Python

  • July 20, 2010

我的 RHEL5 機器上安裝了 python 2.4 和 2.6。

[de22596 gnuradio]:+ss$ python -V
Python 2.4.3

我試圖從 /usr/bin python -> python26 中創建一個符號連結,然後我得到

[de22596 gnuradio]:+ss$ python -V
Python 2.6

但是很多東西都壞了,比如百勝。我怎樣才能解決這個問題?

現在,我有這個:

[de22596 bin]:$ ls -l python*
lrwxrwxrwx 1 root root    9 Jul 20 10:52 python -> python2.4
lrwxrwxrwx 1 root root    6 Jul 12 15:02 python2 -> python
-rwxr-xr-x 2 root root 8304 Jun 11  2009 python2.4
-rwxr-xr-x 2 root root 8328 Apr  9 11:17 python26
-rwxr-xr-x 2 root root 8328 Apr  9 11:17 python2.6
-rwxr-xr-x 1 root root 1418 Apr  9 11:17 python2.6-config
-rwxr-xr-x 2 root root 8304 Jun 11  2009 python.back
lrwxrwxrwx 1 root root   16 Jul 20 10:34 python-config -> python2.6-config

我可以嗎

yum remove python2.4

並期望事情仍然有效?我很擔心,因為 yum 是一個 python 腳本,所以如果我刪除 python2.4 它會足夠聰明嗎?

不幸的是,您無法從 RHEL5 中刪除 Python 2.4,除非您能夠刪除(或修補)數十個僅適用於 2.4 而不是 2.6 的 Python 腳本。您可以輕鬆地將 2.6 與 2.4 並行安裝(如您所知),但刪除 2.4 是“大手術”。您當然可以嘗試,但大多數使用者/運營商只是不打擾。

正如另一張海報所指出的,“/usr/bin/python26”在您的預設路徑中,就像“/usr/bin/python”一樣。在命令行上,您可以只呼叫“python26”而不是“python”。在特定於 2.6 的腳本/程序中,您可以將 she-bang 行替換為 ‘#!/usr/bin/python26’。

處理僅 2.6 的模組有點困難。您需要將它們從“/usr/lib/python/…”移動到“/usr/lib/python26/…”。如果幸運的話,有人可能已經在 RHEL5 上為 Python 2.6 打包了一個變體,但路徑已更改,或者您可以自己修改和重建現有的 RPM。

問題是從 Python 2.4 到 2.6 的轉換引入了一些向後不兼容的問題。因此,如果不進行一些修補,許多使用 2.4 編寫的腳本將無法在 2.6 下正常執行。(有人聲稱 2.6 向後兼容……它很接近,但不是 100%。)

最近的 Fedora 版本和 RHEL6 測試版發布了更高級的 Python 版本(2.5+),以及對數十個(可能數百個)Python 腳本的更新。但 Red Hat 決定將其 EL5 分支保留在 Python 2.4 上,可能是因為存在破壞客戶端機器上執行的任何僅 Python 2.4 腳本的風險。(對於像 RHEL 這樣的長期穩定的發行版系列來說,這是一個非常標準的做法。)

引用自:https://serverfault.com/questions/162217