“yum update” 后没有名为 yum 的模块

“yum update” 后没有名为 yum 的模块

亚马逊 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

这就解决了问题。我以为问题会更加复杂。

相关内容