在 RHEL5 上升級 Python
我的 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 這樣的長期穩定的發行版系列來說,這是一個非常標準的做法。)