这个问题就是比较麻烦,谈不上多高深,原理简单,也没深究,希望可以帮助有遇到这个问题的人。
环境 centos6.5
由于 python 版本问题,将系统自带的 2.6 版本的 python 给卸载了,升级成了 2.7
# 卸载旧的 python
sudo rpm -evf --nodeps python
python -V
Python 2.7.6
然后 yum 就不能用了
导致 yum 无法使用
# yum -v
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named rpm
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.7.6 (default, Dec 15 2016, 13:09:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
由于 yum 是基于 python
centos6.5 默认使用 python2.6.6,我又源码安装了一遍 python2.6.6,
修改了 vi /usr/bin/yum
#/usr/bin/python 修改为#/usr/bin/python2.6
执行 yum-v 还是不行~~
于是就找到 python 和 yum 的 rpm 包安装,一番尝试之后,发现有 N 个 package 需要重新安装,这里只能一个一个的都安装上,装上 python 的 yum 模块
检查方法
python 进入 python 解释器
import yum 如果成功就可以使用 yum 模块了
解决方法如下
rpm 包地址 http://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages/ 64 位包下载
需要安装这几个包
python-2.6.6-29.el6.x86_64.rpm
python-devel-2.6.6-29.el6.x86_64.rpm
python-iniparse-0.3.1-2.1.el6.noarch.rpm
python-setuptools-0.6.10-3.el6.noarch.rpm
python-urlgrabber-3.9.1-8.el6.noarch.rpm
rpm-python-4.8.0-19.el6.x86_64.rpm
yum-3.2.29-22.el6.centos.noarch.rpm
yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
python-pycurl-7.19.0-8.el6.x86_64.rpm
注意 rpm 命令,必须要追加 – replacepkgs 参数,强制其重新安装,否则 rpm 会报告说 package 已安装。
rpm -Uvh – replacepkgs ***.rpm
# python
Python 2.6.6 (r266:84292, Dec 7 2011, 20:48:22)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type “ help ”, “ copyright ”, “ credits ” or “ license ” for more
information.
>>> import yum
如果仍有 packag 缺失,import yum,会提示相关的错误,查找对应的 rpm,装上即可,重复此过程,直到 yum 正常。