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

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

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, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

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.

    Cheers.

    Have a question? Post it on our forum!