Base do RPM com problemas ? Veja como recuperar ...

Nos sistemas baeados no Red Hat ( rhel/Fedora/CentOS ) usamos o rpm e o yum para instalar e atualizar os pacotes. Caso haja algum problema com a base de dados do rpm ( por algum motivo ela foi corrompida ), isto vai causar problemas na funcionalidade do rpm e do próprio yum.

Antes de executar os passos que aqui estão sendo mostrados, mate todos os processos que possam estar acessando sua base rpm ( o rpm e algum processo ligado ao yum e execute os seguintes passos.

Primeiro, faça o backup da sua antiga base de dados do rpm,  que em geral está em /var/lib/rpm

[ataliba@neo ~]$ ls -lah /var/lib/rpm
total 120M
drwxr-xr-x.  2 root root 4.0K Feb 13 12:04 .
drwxr-xr-x. 60 root root 4.0K Feb 13 09:23 ..
-rw-r--r--.  1 root root  11M Feb 13 09:23 Basenames
-rw-r--r--.  1 root root  12K Feb 11 22:23 Conflictname
-rw-r--r--.  1 root root  24K Feb 13 14:15 __db.001
-rw-r--r--.  1 root root 240K Feb 13 14:15 __db.002
-rw-r--r--.  1 root root 1.3M Feb 13 14:15 __db.003
-rw-r--r--.  1 root root 536K Feb 13 14:15 __db.004
-rw-r--r--.  1 root root 4.1M Feb 13 09:23 Dirnames
-rw-r--r--.  1 root root  21M Feb 13 09:23 Filedigests
-rw-r--r--.  1 root root  44K Feb 13 09:23 Group
-rw-r--r--.  1 root root  40K Feb 13 09:23 Installtid
-rw-r--r--.  1 root root 160K Feb 13 09:23 Name
-rw-r--r--.  1 root root  48K Feb 13 09:11 Obsoletename
-rw-r--r--.  1 root root  87M Feb 13 09:23 Packages
-rw-r--r--.  1 root root 1.3M Feb 13 09:23 Providename
-rw-r--r--.  1 root root 348K Feb 13 09:23 Provideversion
-rw-r--r--.  1 root root  12K Nov  5 00:52 Pubkeys
-rw-r--r--.  1 root root 956K Feb 13 09:23 Requirename
-rw-r--r--.  1 root root 544K Feb 13 09:23 Requireversion
-rw-r--r--.  1 root root    0 Nov  4 22:43 .rpm.lock
-rw-r--r--.  1 root root 320K Feb 13 09:23 Sha1header
-rw-r--r--.  1 root root 160K Feb 13 09:23 Sigmd5
-rw-r--r--.  1 root root  12K Feb 10 21:14 Triggername

Agora, é fazer o backup do estado atual da sua base de dados rpm.

# cd /var/lib
# tar -cvzf rpm.tar.gz rpm

Agora é só efetuar os comandos abaixo para fazer a recuperação da sua base rpm. 

# cd /var/lib/rpm
# rm -f __db*
# rpm --rebuilddb -vv

Efetuado isto, sua base já está recuperada ( para testar é só usar o yum, como por exemplo, o yum update ou até um comando como o rpm -qa gimp  ).

Caso isto não tenha resolvido, veja diretamente no erro que o programa executado está mostrando ou nos logs de sistema ( /var/log/messages ).