yum 命令异常 no module named yum

1,165 阅读1分钟

yum 命令异常 no module named yum

问题

造成yum出错的根本原因是python2的版本出现了问题。
yum是要依赖python的,只要动了(重装、删除等等)都会造成这个错误。

网上有很多简单的解决办法都没用,例如:

vim /usr/bin/yum  

# 将第一行改成现有的python版本
/usr/bin/pythonxxx

这种情况只适用于你新装的python与yum原本依赖的python版本并存的情况下才有效。
例如:yum原本依赖python2.6 你装了python2.7 这时修改这第一行 成/usr/bin/python2.6是可以的。

如果原本依赖的python版本没了,那就只能重新安装yum了。

解决

yum的安装教程比较复杂;必须rpm安装,且还依赖一大堆安装包,需要按顺序关系逐个安装。

使用强制安装的方式解决安装复杂的问题。

下载

下载地址:mirrors.163.com/centos/7/os… 以centos 7 为例子, 不同的操作版本下载对应不同的包(后缀不同 xxxxxx.el7.x86_64)

cat > download/yum/temp.txt  << EOF
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-2.7.5-89.el7.x86_64.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-chardet-2.2.1-3.el7.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-devel-2.7.5-89.el7.x86_64.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-kitchen-1.1.1-5.el7.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-libs-2.7.5-89.el7.x86_64.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-pycurl-7.19.0-19.el7.x86_64.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-setuptools-0.9.8-7.el7.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-10.el7.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-python-4.11.3-45.el7.x86_64.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-aliases-1.1.31-54.el7_8.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-protectbase-1.1.31-54.el7_8.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-54.el7_8.noarch.rpm
http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm

EOF

for i in `cat temp.txt`;do wget $i;done

安装

将上面的包放到一个目录下,执行强制安装rpm命令。

rpm -ivh --force *.rpm --nodeps

完成

执行 yum 命令,查看是否可用。

# 列出yum源仓库里面的所有可用的安装包
yum list all