CentOS 5.11:yum 安装,但软件包仍然丢失

CentOS 5.11:yum 安装,但软件包仍然丢失

yum我正在尝试使用 DirectAdmin 在相当旧的 CentOS 5.11 VPS 上找出一个非常奇怪的问题。

执行以下命令表明该telnet软件包已安装:

# yum install telnet
...
Installed:
  telnet.x86_64 1:0.17-41.el5  

然而,telnet仍然缺少:

# which telnet
/usr/bin/which: no telnet in (/root/local/node/bin:/usr/local/share/npm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/share/adt-bundle/tools:/root/share/adt-bundle/platform-tools)

我的 Yum 版本是 3.2.22。

也许出现问题的一个提示是我似乎以rpm某种方式安装了不同的版本。如果我尝试验证我的 RPM 数据库,我的数据库版本显示无效:

# rpm --version
RPM version 4.3.3
# rpm --verify telnet
rpmdb: Program version 4.2 doesn't match environment version
error: db4 error(22) from dbenv->open: Invalid argument
error: cannot open Packages index using db3 - Invalid argument (22)
error: cannot open Packages database in /var/lib/rpm
package telnet is not installed

如果我使用以下命令重建 RPM 数据库:

rm -rf /var/lib/rpm/__db* && rpm --rebuilddb

Yum 给出了类似的错误,但抱怨较新的版本:

# yum update
Loaded plugins: fastestmirror
rpmdb: Program version 4.3 doesn't match environment version
error: db4 error(-30974) from dbenv->open: DB_VERSION_MISMATCH: Database environment version mismatch
error: cannot open Packages index using db3 -  (-30974)
error: cannot open Packages database in /var/lib/rpm

删除这些/var/lib/rpm/__db*文件可以让 Yum 再次克服这个问题,但已安装的软件包似乎仍然丢失。

我感觉 Yum 在某种程度上配置错误,或者我有两个不同版本的 RPM。我可以做什么来诊断问题并最终找到解决方案?

答案1

我认为这是你的 rpm 安装不知何故关闭的。我预计在安装了 yum 3.2.22 的 CentOS 5.11 上,您的 rpm 版本将是 4.4.2.3,而不是 4.3.3

具体来说,rpm-libs 软件包安装 yum 3.2.22 需要的 /usr/lib64/librpmdb-4.4.so,但我猜你有 /usr/lib64/librpmdb-4.3.so

我建议您从更新存储库下载新的 rpm-*4.4.*rpm 并手动使用 rpm 安装它们。

相关内容