亚马逊 EC2 Linux AMI
Python 2.7.5
yum 3.4.3
我最近执行了“yum update”,我猜这导致了我的问题。Yum 现在执行以下操作:
# yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
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.5 (default, Sep 3 2013, 23:16:48)
[GCC 4.6.3 20120306 (Red Hat 4.6.3-2)]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
查看了 yum 常见问题解答,对于摆弄 yum rpm 并把事情弄得更乱,我感到不是很舒服。
谷歌了一下,发现python 2.6有正确的站点包而2.7.5没有:
# rpm -ql python | grep "site-packages$"
# rpm -ql yum | grep "site-packages/yum$"
/usr/lib/python2.6/site-packages/yum
如果我尝试强制 yum 使用 2.6,现在会出现此错误:
# yum --version
3.4.3
CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/yum/yum.conf
不确定如何重新启动并运行...
答案1
在 centos 中,这个问题大多是由于在同一台机器上安装了两个版本的 python 造成的。Centos 默认通过 yum 使用 python 2.6,而当前系统默认安装并使用了另一个版本的 python。这就是为什么会给出以下消息
上述模块可能与 Python 的当前版本不匹配,当前版本为:2.7.5(默认,2013 年 9 月 3 日,23:16:48)
为了解决这个问题,您必须链接python
到 yum 所依赖的版本 2.6 才能正常工作:
首先删除 python
$ rm /usr/bin/python
将 python 与正确的版本 2.6 链接
$ ln -s /usr/bin/python2.6 /usr/bin/python
这里有一个好文章描述如何在同一台机器上安装不同版本的python。
答案2
在我发布这篇文章后,我立即尝试:
ln -s /etc/yum.conf /etc/yum/yum.conf
这就解决了问题。我以为问题会更加复杂。