Dnes jsem testoval webový server Nginx ve virtuálním počítači CentOS 7. Bohužel se uprostřed procesu aktualizace ztratila energie. Protože nemám UPS, můj hostitelský systém okamžitě selhal. Po několika minutách došlo k napájení a znovu jsem zapnul VM a zahájil proces upgradu. Když spustím příkaz "yum update", zobrazí se tato chybová zpráva:
error: rpmdb: BDB0113 Thread/process 2196/139984719730496 failed: BDB1507 Thread died in Berkeley DB library error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db5 - (-30973) error: cannot open Packages database in /var/lib/rpm CRITICAL:yum.main: Error: rpmdb open failed
Vypadá to, že se YUM porouchalo. Nemohl jsem spustit žádný příkaz yum. S touto chybou jsem se ještě nesetkal a nevěděl jsem, co mám dělat. Zamířil jsem tedy na fórum CentOS v naději, že najdu vhodné řešení k vyřešení tohoto problému. Po několika hledáních na fóru jsem naštěstí našel řešení. Pokud jste se někdy dostali do tohoto problému, nikam nehledejte a proveďte následující kroky.
Nejprve zálohujte databázi rpm pomocí příkazu jako uživatel root:
# mv /var/lib/rpm/__db* /tmp
Potom spusťte následující příkaz:
# yum clean all
Nyní spusťte aktualizaci znovu:
# yum update Loaded plugins: fastestmirror Cleaning repos: base epel extras updates Cleaning up everything Cleaning up list of fastest mirrors [[email protected] ~]# yum update Loaded plugins: fastestmirror base | 3.6 kB 00:00 epel/x86_64/metalink | 5.0 kB 00:00 epel | 4.3 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 (1/7): base/7/x86_64/group_gz | 155 kB 00:02 (2/7): epel/x86_64/group_gz | 170 kB 00:04 (3/7): extras/7/x86_64/primary_db | 191 kB 00:12 (4/7): epel/x86_64/updateinfo | 809 kB 00:21 (5/7): base/7/x86_64/primary_db | 5.6 MB 00:26 (6/7): epel/x86_64/primary_db | 4.8 MB 00:46 (7/7): updates/7/x86_64/primary_db | 7.8 MB 00:50 Determining fastest mirrors * base: mirror.ehost.vn * epel: repo.ugm.ac.id * extras: mirror.ehost.vn * updates: mirror.dhakacom.com Resolving Dependencies --> Running transaction check ---> Package NetworkManager.x86_64 1:1.4.0-19.el7_3 will be updated ---> Package NetworkManager.x86_64 1:1.4.0-20.el7_3 will be an update ---> Package NetworkManager-adsl.x86_64 1:1.4.0-19.el7_3 will be updated [...] --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel x86_64 3.10.0-514.26.2.el7 updates 37 M python2-libcomps x86_64 0.1.8-3.el7 epel 46 k replacing python-libcomps.x86_64 0.1.6-13.el7 Updating: NetworkManager x86_64 1:1.4.0-20.el7_3 updates 2.5 M NetworkManager-adsl x86_64 1:1.4.0-20.el7_3 updates 146 k NetworkManager-bluetooth x86_64 1:1.4.0-20.el7_3 updates 165 k NetworkManager-glib x86_64 1:1.4.0-20.el7_3 updates 385 k NetworkManager-libnm x86_64 1:1.4.0-20.el7_3 updates 443 k NetworkManager-team x86_64 1:1.4.0-20.el7_3 updates 147 k python-perf x86_64 3.10.0-514.26.2.el7 updates 4.0 M sudo x86_64 1.8.6p7-23.el7_3 updates 735 k systemd x86_64 219-30.el7_3.9 updates 5.2 M systemd-libs x86_64 219-30.el7_3.9 updates 369 k systemd-sysv x86_64 219-30.el7_3.9 updates 64 k tuned noarch 2.7.1-3.el7_3.2 updates 210 k xfsprogs x86_64 4.5.0-10.el7_3 updates 895 k Removing: kernel x86_64 3.10.0-123.el7 @anaconda 127 M Transaction Summary ================================================================================ Install 2 Packages Upgrade 46 Packages Remove 1 Package Total download size: 84 M Is this ok [y/d/N]: y
Píšu y pokračovat v aktualizaci. Voila! Vše funguje podle očekávání.
Nakonec jsem zálohu vyčistil pomocí příkazu:
# rm -i /tmp/__db*
A to je zatím vše. Doufám, že to pomůže.
Související čtení:
- [Vyřešeno] – „chyba:rpmdbNextIterator:přeskakování“ ve Fedora Linux