I’m trying to run yum update and I’m running this error:
rpmdb: PANIC: fatal region error detected; run recovery error: db3 error(-30974) from dbenv->open: 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
I checked page like this one but running yum clean all runs the same error.
How can I solve this?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
This is how I fixed my problem.
You may fix this by cleaning out rpm database. But first, in order to minimize the risk, make sure you create a backup of files in /var/lib/rpm/ using cp command:
mkdir /root/backups.rpm.mm_dd_yyyy/ cp -avr /var/lib/rpm/ /root/backups.rpm.mm_dd_yyyy/
The try this to fix this problem:
# rm -f /var/lib/rpm/__db* # db_verify /var/lib/rpm/Packages # rpm --rebuilddb # yum clean all
And finally verify that error has gone with the following yum command
# yum update
Method 2
Thanks Alex, your answer worked for me apart from one slight change I had to make.
rm -f /var/lib/rpm/__db*
returned errors
rm: cannot remove `/var/lib/rpm/__db.001': Is a directory rm: cannot remove `/var/lib/rpm/__db.002': Is a directory rm: cannot remove `/var/lib/rpm/__db.004': Is a directory
so I had to recurse with
rm -rf /var/lib/rpm/__db*
Method 3
I tried the above one it did’nt work
below works fine
# cd /var/lib # tar -zcvf /var/preserve/rpmdb-$(date +%Y-%m-%d_%H-%M-%S).tar.gz rpm
Note: This tar backup can be used if the attempt to recover the RPM database has issues.
Verify integrity of the Packages file:
# cd /var/lib/rpm # rm -f __db* # to avoid stale locks # /usr/lib/rpm/rpmdb_verify Packages # mv Packages Packages.orig # /usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages # rpm -vv --rebuilddb
Once again verify RPM database:
# cd /var/lib/rpm # /usr/lib/rpm/rpmdb_verify Packages
Method 4
All I had to do was to delete the two file with the “.lock” extension, and the three files that started with “__db”.
# rm /var/lib/rpm/.dbenv.lock # rm /var/lib/rpm/.rpm.lock # rm /var/lib/rpm/__db*
After that, yum update worked.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0