我想我搞乱了我的 python 配置,现在 yum 无法工作了。我收到错误“没有名为 yum 的模块”。我尝试过作为解释器进行编辑/usr/bin/yum
和添加#!/usr/bin/python2.6
,但这没有帮助。我已将其恢复为原始设置/usr/bin/python。
[root@bin]# python --version
Python 2.7.14
[root@bin]# ls -l /usr/bin/python
lrwxrwxrwx 1 root root 18 Feb 21 09:08 /usr/bin/python -> /usr/bin/python2.6
[root@bin]# cat /etc/redhat-release
CentOS release 6.6 (Final)
答案1
您/usr/bin/python
仍然指向 CentOS 6 附带的原始 Python 2.6,因此这似乎不是问题。您可以仔细检查以/usr/bin/python --version
确认其有效。
最可能的问题是,您的 Python 2.7 安装覆盖了系统附带的 Python 安装中的一些其他文件/目录,可能是 下的某个文件/目录/usr/lib/python
,可能是一个site-packages
目录或类似目录。
您可以使用rpm -V
命令(“V”代表“验证”)要求 RPM 包管理器告诉您自安装包以来哪些文件被修改。例如,要验证所有 Python 和 Yum 软件包,请使用以下命令:
# rpm -Va 'python*' 'yum*'
请参阅 rpm 文档以获取有关输出格式的帮助,但无论如何,如果您看到文件旁边列出了“5”标志,则意味着 MD5 与数据库中的 MD5 不匹配,这意味着该文件是修改的。
由于 yum 本身无法工作,很难说如何从这种情况中恢复...除非输出rpm -V
列出了一些相当明显的内容并且修复似乎足够了,否则手动下载 RPM 并重新安装将是困难或工作密集型他们...如果可以选择从头开始重新安装计算机,也许您应该考虑这样做。
在安装不是来自操作系统提供商的软件时,您应该格外小心,尤其是在 CentOS 等发行版上(因为 CentOS 及其上游 RHEL 的一大卖点是它们支持使旧软件包在安全问题上保持最新状态) ,当您安装不由 yum 管理的软件时,您就会丢失它。)如果您仍然认为应该安装(例如,Python 2.7),请尝试在单独的目录结构(例如 )下进行安装,/usr/local
这样就不会干扰 Python 安装从分布来看/usr
。
更重要的是...如果您需要 Python 2.7,您是否考虑过使用 CentOS 7? CentOS 6 在这一点上已经相当古老了……CentOS 7 已经附带了 Python 2.7,所以除非你有充分的理由继续使用 CentOS 6(而且我真的无法想象一个好的理由),请考虑迁移到较新的版本。