RHEL5.8升级自带python2.4.3为python2.7.5

2018年10月16日 3638点热度 1人点赞


  在使用自动化运维工具ansible来管理服务器的时候,,一些比较老的机器可能因为系统自带的python版本较低(2.6之前),缺少ansible依赖的Simplejson模块。导致无法正常管理该服务器。这种情况下我们有两种方法去解决它:1.额外在单独安装Simplejson模块。 2.升级python版本至2.6及以上版本。这里我们记录下升级python版本的方法。




一、安装依赖包


一定要提前安装好zlib-devel包,然后再编译安装python包,不然哪怕新版的python都安装好了。使用ansible管理该节点也还会报(self._decompressor = zlib.decompressobj(-15)\r\nAttributeError: 'NoneType' object has no attribute 'decompressobj'\r\n)这个错误,如下所示:






二、编译安装下载好的python包


安装完后不会修改现在的配置,默认还是2.4.3






三、修改默认python版本为2.7.5

3.1、查找刚2.7.5版本python的安装位置


3.2、查看系统当前默认调用python路径

可以看到我们正常使用python命令的话,首先调用的是/usr/bin/python这个,但是这个python其实是一个符号链接,指向了当前目录下的python2.4


3.3、删除指向旧版本python的符号链接,新建符号链接指向新版本的python






四、解决修改默认python版本导致的问题(如:yum不能使用)

按照上面3所示的方法修改完默认python版本后,再使用yum时可能会报以下错误:

上面这种情况,我们只需要修改下yum默认调用的python版本指向旧版的python即可。如下所示:



4.1、查看yum命令位置


4.2、使用file命令可以看出yum是一个python写的程序


4.3、直接修改yum首行调用的python即可


4.4、再次尝试,发现yum已经恢复正常




Chen

健康 · 开心 · 做自己