重新安装yum与之前版本冲突但yum不可用

重新安装yum与之前版本冲突但yum不可用

我正在使用以下命令重新安装 yum:

sudo rpm -ivh yum-3.4.3-158.el7.centos.noarch.rpm

我遇到了很多这种类型的冲突:

file /usr/share/yum-cli/yummain.py from install of yum-3.4.3-158.el7.centos.noarch conflicts with file from package yum-3.4.3-154.el7.centos.noarch

我知道 yum 一定是之前使用yum-3.4.3-154.el7.centos.noarchpackage 安装的,但我的系统没有任何 yum。

当我在 shell 中输入 yum 时,它没有找到它。这是我的后续行动上一个问题。我知道系统中缺少 yum,但是现在我应该如何安装它呢?

编辑:

我尝试在 shell 中sudo rpm -Uvh yum-3.4.3-158.el7.centos.noarch.rpm输入。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.14 |Anaconda, Inc.| (default, Mar 27 2018, 17:29:31)
[GCC 7.2.0]

答案1

如果您收到此错误:

执行 yum 更新会导致错误“没有名为 yum 的模块”

这通常是 YUM 需要的模块的 Python 问题。要解决这个问题:

$ sudo -Es
$ unset PYTHONHOME

然后重新安装python:

$ rpm -Uvh --replacefiles --replacepkgs python-<version>.rpm

access.redhat.com 的文章涵盖了整个主题:为什么 yum 在系统上失败并出现“没有名为 yum 的模块”错误?

根本原因

  • PYTHONHOME变量已设置为系统上的环境变量。
  • Python 库/文件被修改,可以从rpm -Va命令的输出中观察到。
  • 第三方 python 模块安装在系统上,可在“ldd /usr/bin/python”命令的输出中找到。
  • 软件包 rpm-python* 未安装。

相关内容