如何在不使用 yum --version 的情况下找到 yum 的已安装版本?

如何在不使用 yum --version 的情况下找到 yum 的已安装版本?

我正在开发一台 Red Hat Enterprise Linux 服务器,显然有人对 Python 版本清理进行了粗心大意,yum结果导致崩溃。一位同事收集到,为了解决这个问题,您必须手动安装该特定版本的 yum 使用的 Python .rpm,但由于yum --version不起作用,我们无法知道该服务器上安装了哪个版本的 yum。rpm -q yum也不起作用,因为yum似乎已在该服务器上侧面加载。

除了使用包管理器命令之外,还有其他方法可以找到已安装的版本吗?

答案1

鉴于你所说的,我能想到的唯一方法是查看主 Yum Python 模块。 Python 模块可以在 中找到/usr/lib/python*。在每个目录下,查找site-packages/yum/__init__.py如下行:

__version__ = "3.2.27"

然而,一旦您做到了这一点,您在技术上就知道您需要什么 Python 版本,因为 Python 模块目录是版本化的。

答案2

您需要完整的 NVR 才能找到真正的版本,3.xx 还不够好,无法知道您拥有什么。但假设您没有删除随机内容,那么 yum 历史数据库仍然存在。所以你可以运行:

# sqlite3 /var/lib/yum/history/history-*.sqlite \
  "SELECT * FROM vtrans_data_pkgs WHERE name = 'yum';"

...或者你甚至可以从 github 下载 yum 并运行“./yummain.py History”以获得漂亮的 UI。

相关内容