最近折腾了CentOS7,当前最新的CentOS7.5默认安装的python2.7要升级到python3所以记录下自己走过的坑。(需要添加epel源,这里就不啰嗦了!)
yum install gcc dialog augeas-libs openssl openssl-devel libffi-devel redhat-rpm-config ca-certificates
下载python3的源码,这里我使用的是python3.6.7
可以从下面的地址下载:
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgztar xzf ./Python-3.6.7.tgzcd ./Python-3.6.7./configure --prefix=/usr
这里省略N多的信息。。。。。然后开始编译和安装
make && make install -j2
故事到这里还一帆风顺,此时进入/usr/bin目录下就可以看到刚刚安装好的python3
[root@host ~]# ls /usr/bin |grep pythonpythonpython2python2.7python3python3.6python3.6-configpython3.6mpython3.6m-configpython3-config
因为笔者是准备使用fail2ban 0.10.3.1,需要python3的支持,所以将默认的python删掉,然后将python3软连接为python(被删掉的python实际是python2.7的软连接)
ln -s /usr/bin/python3.6 /usr/bin/python
至此我们的python3已经安装完成,查看如下:
[root@host ~]# pythonPython 3.6.7 (default, Nov 15 2018, 15:01:50)[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linuxType "help", "copyright", "credits" or "license" for more information.
哈哈,一切看来如此简单,然后笔者抱着开心的态度执行了一下yum update…..,然后诡异的事情出现了。
[root@host ~]# yum update File "/bin/yum", line 30 except KeyboardInterrupt, e: ^SyntaxError: invalid syntax
我去。。。yum挂了,笔者当时第一反应,我是不是该重装一下?File “/bin/yum”, line 30是什么鬼?我不就安装了个python3吗?经过一番搜索,最终得到答案因为CentOS7的yum使用的是python2,只需要在yum上指定对应的版本即可
1. 修改/usr/bin/yum
nano /usr/bin/yum
在第一行,把下面这段
#!/usr/bin/python
修改为:
#!/usr/bin/python2
2. 修改/usr/libexec/urlgrabber-ext-down
替换这段
#! /usr/bin/python
为下面这段:
#! /usr/bin/python2
3. 修改nano /usr/bin/yum-config-manager
修改这段:
#!/usr/bin/python -tt
为下面这段:
#!/usr/bin/python2 -tt
在执行yum update,哈哈一切恢复了!