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