Как то при обновлении пакетов на сервере получил не очень приятное сообщение
# yum check-update rpmdb: Thread/process 25837/139766049310464 failed: Thread died in Berkeley DB library error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db3 - (-30974) error: cannot open Packages database in /var/lib/rpm CRITICAL:yum.main: Error: rpmdb open failed
Сперва не понял что это всё означает. Альтернативная проверка дала тот же результат
# rpm -qa rpmdb: Thread/process 25837/139766049310464 failed: Thread died in Berkeley DB library error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db3 - (-30974) error: cannot open Packages database in /var/lib/rpm rpmdb: Thread/process 25837/139766049310464 failed: Thread died in Berkeley DB library error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages database in /var/lib/rpm
Всё таки не хочет обновляться так как система не может получить список пакетов. Хочет что бы я сделал восстановление базы. Проверяем что в указанном каталоге
# ls -l /var/lib/rpm total 46592 -rw-r--r--. 1 root root 1548288 Jul 25 13:56 Basenames -rw-r--r--. 1 root root 12288 Jul 25 13:56 Conflictname -rw-r--r-- 1 root root 73728 Jul 25 14:06 __db.001 -rw-r--r-- 1 root root 229376 Jul 25 14:06 __db.002 -rw-r--r-- 1 root root 1318912 Jul 25 14:06 __db.003 -rw-r--r-- 1 root root 753664 Jul 25 14:00 __db.004 -rw-r--r--. 1 root root 544768 Jul 25 13:56 Dirnames -rw-r--r--. 1 root root 2609152 Jul 25 13:56 Filedigests -rw-r--r--. 1 root root 12288 Jul 25 13:56 Group -rw-r--r--. 1 root root 8192 Jul 25 13:56 Installtid -rw-r--r--. 1 root root 24576 Jul 25 13:56 Name -rw-r--r--. 1 root root 12288 Jul 25 13:56 Obsoletename -rw-r--r--. 1 root root 38973440 Jul 25 13:56 Packages -rw-r--r--. 1 root root 1339392 Jul 25 13:56 Providename -rw-r--r--. 1 root root 1036288 Jul 25 13:56 Provideversion -rw-r--r--. 1 root root 12288 May 5 23:02 Pubkeys -rw-r--r--. 1 root root 192512 Jul 25 13:56 Requirename -rw-r--r--. 1 root root 98304 Jul 25 13:56 Requireversion -rw-r--r--. 1 root root 45056 Jul 25 13:56 Sha1header -rw-r--r--. 1 root root 24576 Jul 25 13:56 Sigmd5 -rw-r--r--. 1 root root 12288 May 5 22:20 Triggername
Вроде всё на месте. Хорошо, раз требуется восстановление базы то запустим его
# rpm --rebuilddb rpmdb: Thread/process 25837/139766049310464 failed: Thread died in Berkeley DB library error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db3 - (-30974)
Ага, не тут то было. База сломалась сильнее, ем ожидалось. Тогда просто удалим базу и пересоздадим снова
# rm -f /var/lib/rpm/__* # rpm --rebuilddb
И проверим
# rpm -qa | grep yum yum-3.2.29-73.el6.centos.noarch yum-plugin-fastestmirror-1.1.30-37.el6.noarch yum-metadata-parser-1.1.2-16.el6.x86_64 # rpm -qa | wc -l 340
Замечательно! База пакетов актуальная и можно выполнять обновление.