修复CentOS7升级Python到3.6版本后yum不能使用的问题
之前把现有这台阿里CentOS7.2系统的Python2.7.5升级成Python3.6后,yum工具就不能使用了。当时网上查了下原因,都说是Python3导致的,但是试了很多种方法还是没解决,后面也就一直没管了。因为最近要弄一个Nodejs微信小程序,需要用yum安装一些开发工具,就不得不修复这个问题了。
1 yum工具报错情况
直接执行yum
命令就会提示/usr/bin/yum
文件第34行有错误:
[root@typecodes ~]# yum
File "/usr/bin/yum", line 34
^
SyntaxError: EOF while scanning triple-quoted string literal
[root@typecodes ~]#
但是vim查看这个文件根本没有这一行:
2 解决方法
由于找不到报错的位置,只能考虑重新安装yum了。
2.1、下载yum安装包
[root@typecodes ~]# wget -c http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz
[root@typecodes ~]# tar -zxf yum-3.4.3.tar.gz
[root@typecodes ~]# cd yum-3.4.3/
接着使用python2 yummain.py install yum
命令(还是不能使用python3来执行)重新安装yum工具:
2.2、执行yum
命令
尝试执行yum
命令,在/usr/bin/yum
文件的第30行报错:
[root@typecodes yum-3.4.3]# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
[root@typecodes yum-3.4.3]#
显然上面的except
语句是python2的写法,当然不能使用默认的Python3命令来执行了。于是把这个文件第1行的#!/usr/bin/python
替换成#!/usr/bin/python2
。
2.2、继续执行yum
命令
尝试执行yum -y update
命令更新CentOS系统,结果在文件/usr/libexec/urlgrabber-ext-down
第28行处还是报SyntaxError: invalid syntax
的错误。
原因是一样的,所以要么把/usr/libexec/urlgrabber-ext-down
文件中所有的except写法改成Python3,要么修改第1行的解释器声明,显然第2种方法更新简单有效。
3 解决完毕
到此,可以愉快地使用yum -y update
命令更新CentOS系统,然后做开发了!
打赏支持
Comments »