在RHEL5上升级Python

我的RHEL5机器上安装了Python 2.4和2.6。

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

我试图从/ usr / bin python – > python26中创build一个符号链接,然后就可以了

 [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”在你的默认path中,就像'/ usr / bin / python'一样。 在命令行中,您可以调用“python26”而不是“python”。 在2.6特定的脚本/程序中,你可以用'#!/ usr / bin / python26'replace你的砰砰声。

处理2.6-only模块有点困难。 您需要将它们从'/ usr / lib / python / …'移动到'/ usr / lib / python26 / …'。 如果幸运的话,有人可能已经在RHEL5上专门为Python 2.6打包了一个变体,而且path已经改变了,或者您可以自己修改和重build现有的RPM。

问题是从Python 2.4到2.6的转换引入了一些后向不兼容的问题。 所以用2.4编写的很多脚本在没有补丁的情况下将无法正常运行。 (有些人声称2.6 IS是向后兼容的……它接近,但不是100%。)

最近的Fedora发行版和RHEL6 beta版都发布了更高级的Python版本(2.5+),同时更新了几十个(可能是数百个)Python脚本。 但是红帽公司决定将其EL5分支放在Python2.4上,这可能是因为可能会破坏在客户端机器上运行的任何Python2.4脚本。 (对于像RHEL这样的长期稳定的发行版本,这是一个相当标准的做法。)

简单。 不要这样做。 修改适当脚本的shebang行,或者直接调用python26

我知道这不会过分的帮助,但为什么你需要升级python? – RHEL5的目标是稳定,因此在利用新版本的能力方面存在无谓的折衷。