Я пытаюсь решить очень странную проблему с yum
на довольно старом CentOS 5.11 VPS с использованием DirectAdmin.
Выполнение следующей команды предлагает 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*
files снова получает Yum от этого, но установленные пакеты по-прежнему отсутствуют.
У меня такое ощущение, что Yum как-то неправильно настроен или у меня две разные версии RPM. Что я могу сделать, чтобы диагностировать проблему и в конечном итоге решить ее?