下午工做的时候遇到了一个问题,测试服务器上的 yum 不知为什么不能使用,抛出错误 No module named yum
。Google 了以后发现基本都是讲修改 yum 使用的 python 版本,可是在我尝试安装了 python2.6 并修改了 /usr/bin/yum
文件后发现仍是不行,因而决定重装 yum。html
首先查看现有的 yum:node
rpm -qa yum
卸载现有的 yum 源:python
rpm -qa | grep yum | xargs rpm -e --nodeps
先查看系统版本:linux
cat /etc/centos-release
肯定系统版本为 CentOS Linux release 7.0.1406 (Core)
后,到官网查找下列 rpm 包:
http://mirror.centos.org/centos/7/os/x86_64/Packages/segmentfault
若是为其余系统,可自行查找对应的包下载。centos
下载 yum 的 rpm 包:服务器
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-163.el7.centos.noarch.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
须要一块儿安装,否则会报互相依赖的错误。python2.7
在安装以后,我运行 yum 的时候仍是报错:/usr/lib64/python2.7/site-packages/rpm/_rpm.so: undefined symbol: rpmtsAddReinstallElement
这是因为 rpm 包的版本不对应致使的。使用下列指令查看:测试
rpm -qa | grep rpm
显示结果为:ui
rpmfusion-free-release-7-4.noarch rpm-python-4.11.3-40.el7.x86_64 rpm-libs-4.11.3-25.el7.x86_64 rpm-4.11.3-25.el7.x86_64 rpm-build-libs-4.11.3-25.el7.x86_64
发现其中 rpm-python
的包为 3-40
,而其余包版本为 3-25
。这时再去下载对应 3-40
的包:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/rpm-4.11.3-40.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/rpm-build-libs-4.11.3-40.el7.x86_64.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
运行下述指令更新包:
rpm -Uvh rpm-4.11.3-40.el7.x86_64.rpm rpm-build-libs-4.11.3-40.el7.x86_64.rpm rpm-libs-4.11.3-40.el7.x86_64.rpm
安装成功后再运行 yum
指令,就发现安装成功啦~
Python 升级致使 yum 不可用 “ No module named yum” - Linux 社区
yum 的卸载与从新安装 - CSDN
CentOS7 的 yum 重装 - CSDN
centos7 中 yum 的安装 - 博客园
CentOS7 误删 python 及 yum(重装)
rpm 安装依赖问题 - 思否