我在之前的文章 《CentOS 安装 Python3 最佳方法》介绍了在 CentOS 上快速安装 python3 的方法,我自己的系统上也确实是用这种方式安装的。但是今天通过 yum update
更新系统的时候竟然报错了。
file /usr/lib64/python3.6/xml/sax/__pycache__/xmlreader.cpython-36.opt-2.pyc from install of python36-libs-3.6.6-5.el7.x86_64 conflicts with file from package python36u-libs-3.6.7-1.ius.centos7.x86_64 file /usr/lib64/python3.6/xml/sax/__pycache__/xmlreader.cpython-36.pyc from install of python36-libs-3.6.6-5.el7.x86_64 conflicts with file from package python36u-libs-3.6.7-1.ius.centos7.x86_64 file /usr/lib64/python3.6/xml/sax/expatreader.py from install of python36-libs-3.6.6-5.el7.x86_64 conflicts with file from package python36u-libs-3.6.7-1.ius.centos7.x86_64 file /usr/lib64/python3.6/zipfile.py from install of python36-libs-3.6.6-5.el7.x86_64 conflicts with file from package python36u-libs-3.6.7-1.ius.centos7.x86_64 file /usr/bin/python3.6m from install of python36-3.6.6-5.el7.x86_64 conflicts with file from package python36u-3.6.7-1.ius.centos7.x86_64 file /usr/bin/python3.6 from install of python36-3.6.6-5.el7.x86_64 conflicts with file from package python36u-3.6.7-1.ius.centos7.x86_64 Error Summary -------------
从报错的信息中很容看出来是出现了冲突。经过 Google 发现原因是系统上由 epel 源(就是用 《CentOS 安装 Python3 最佳方法》这个方法时添加的),同时还有 ius 源。运行 yum repolist
就能看到当前系统添加的源:
[iplay@xx-good iplay]# yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status base/7/x86_64 CentOS-7 - Base 10,097 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,398 extras/7/x86_64 CentOS-7 - Extras 304 ius/x86_64 IUS for Enterprise Linux 7 - x86_64 387 updates/7/x86_64 CentOS-7 - Updates 311 repolist: 24,497
原来 epel 和 ius 源有相同的 python3 版本,而且依赖相同的文件,导致更新时出现冲突了。网上有很多方法,包括跳过 python3 的更新(难道永远不更新?)、删除某个源(epel 和 ius 源的偏好和目的不同,建议保留),还有一个方法就是卸载重装。
我决定用第三种方法:
卸载python3 rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps 卸载pyhton3 whereis python3 |xargs rm -frv 删除所有残余文件 成功卸载! whereis python 查看现有安装的python ———————————————— 版权声明:本文为CSDN博主「lcanlup」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lcanlup/article/details/84635625
卸载完成后直接运行 yum install python3
,系统自动安装好 python3、pip3 和其他依赖的包,输入 python3 -V
看到版本号就说明已经成功。此时运行 yum update
终于恢复到如行云流水般顺畅。