Fix corrupted RPM database on CentOS 5 / Redhat enterprise Linux 5 / Fedora 7

in Categories CentOS, Linux, Linux distribution, RedHat/Fedora Linux, Tip of the day last updated July 25, 2007

If rpm / yum command hangs during operations or you see error messages – it means your rpm database corrupted. /var/lib/rpm/ stores rpm database just delete the same and rebuild rpm database:

Command to rebuild rpm database

rm -f /var/lib/rpm/__db*
rpm --rebuilddb

Read rpm / yum man pages for more information

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Share this on (or read 7 comments/add one below):

7 comment

  1. Hi i am facing the same problem , i an not able to install any rpm through rpm commands or yum .
    when i run rpm -ivh package name i got below error :
    error: can’t create transaction lock on /var/lib/rpm/__db.000
    even i am not able to remove the /var/lib/rpm then __db.00* file
    i got the below error :=
    [root@Rajnish rpm]# rm -rf __db.00*
    rm: cannot remove `__db.001′: Permission denied
    rm: cannot remove `__db.002′: Permission denied
    rm: cannot remove `__db.003′: Permission denied
    [root@Rajnish rpm]#

    i am using centos 5.4 for Detaill :-
    uname -a
    Linux Rajnish 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

    any suggestion . how can i get out from here .

  2. Rajnish,
    I have had this problem in the past. I *believe* it happens when a running process is accessing the files.

    Also, are you running as root? That could be why you are getting the “Permission denied” error.

  3. Hello.

    I hit this same problem. Your solution put me in the right direction, however, your syntax needs a little more. Please try the following instead.

    cd /var/lib/rpm
    rm -rf __db*
    rpm –rebuilddb

    Note the ‘r’ for recursion in the remove command.


    Have a question? Post it on our forum!