我正在尝试使用 DirectAdmin 解决yum
相当旧的 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。我该如何诊断问题并最终找到解决方案?