Fedora

Recuperar base de dados dos pacotes RPM

Hoje me deparei com um pequeno problema em um dos servidores CentOS que administro, fui consultar um pacote instalado e obtive a seguinte mensagem de erro:

erro: erro do db4 (22) do db->close: Argumento inválido
rpmdb: Lock table is out of available locker entries
rpmdb: Unknown locker ID: 5d6a
erro: erro do db4 (22) do db->close: Argumento inválido
rpmdb: Lock table is out of available locker entries
rpmdb: Unknown locker ID: 5d6b
erro: erro do db4 (22) do db->close: Argumento inválido
rpmdb: Lock table is out of available locker entries
rpmdb: Unknown locker ID: 5d6c

E várias outras do tipo. Resumindo, minha base de dados dos pacotes RPM estava corrompida. Então era preciso recriá-la.

Vamos lá

Primeiro, vamos fazer um backup da base atual (mesmo defeituosa):

# tar cfz rpmdb.tar.gz /var/lib/rpm

Agora vamos fazer a recriação da base:

# rm -fr /var/lib/rpm/__db.00*
# rpm –rebuilddb

Protinho! Agora é só realizar a consulta dos pacotes:

# rpm -qa