我正在开发一台 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。