Recuperando base de dados do RPM
Dica publicada em Linux / Software
Recuperando base de dados do RPM
Por algum motivo aleatório, a base de dados do RPM (gerenciador de pacotes para sistemas derivados do Red Hat, como Fedora, SUSE, Mandriva e outros) pode ser danificada, impedindo que o comando rpm funcione. O sintoma característico é: você executa o comando rpm com qualquer parâmetro (exemplo: rpm -qa) e nada é executado, deixando o terminal travado.
Para recuperar a base de dados, fazendo o rpm voltar a funcionar, siga os procedimentos abaixo.
Primeiramente, torne-se root:
$ su -
password:
Em seguida, acesse o diretório /var/lib e renomeie o diretório rpm para rpm.bkp:
# cd /var/lib
# mv rpm{,.bkp}
Agora, recrie o diretório rpm e altere suas propriedades para o usuário rpm e o grupo rpm:
# mkdir rpm
# chown rpm:rpm rpm
Crie uma nova base de dados do RPM, vazia, acesse o diretório rpm.bkp e copie todos os arquivos, exceto os que começam com __ (2 underscores), para o diretório rpm recém-criado:
# rpm --initdb
# cd rpm.bkp
# cp -a [^__]* ../rpm
Por fim, recrie a base de dados do RPM com base nos arquivos copiados no último procedimento:
# rpm --rebuilddb
Pronto, a sua base de dados estará recuperada. Para testar, execute o comando
# rpm -qa
e veja se todos os pacotes listados no sistema são exibidos. Se estiver tudo certo, apague o diretório rpm.old:
# rm -rf /var/lib/rpm.bkp
Um grande abraço,
Davidson Paulo
Para recuperar a base de dados, fazendo o rpm voltar a funcionar, siga os procedimentos abaixo.
Primeiramente, torne-se root:
$ su -
password:
Em seguida, acesse o diretório /var/lib e renomeie o diretório rpm para rpm.bkp:
# cd /var/lib
# mv rpm{,.bkp}
Agora, recrie o diretório rpm e altere suas propriedades para o usuário rpm e o grupo rpm:
# mkdir rpm
# chown rpm:rpm rpm
Crie uma nova base de dados do RPM, vazia, acesse o diretório rpm.bkp e copie todos os arquivos, exceto os que começam com __ (2 underscores), para o diretório rpm recém-criado:
# rpm --initdb
# cd rpm.bkp
# cp -a [^__]* ../rpm
Por fim, recrie a base de dados do RPM com base nos arquivos copiados no último procedimento:
# rpm --rebuilddb
Pronto, a sua base de dados estará recuperada. Para testar, execute o comando
# rpm -qa
e veja se todos os pacotes listados no sistema são exibidos. Se estiver tudo certo, apague o diretório rpm.old:
# rm -rf /var/lib/rpm.bkp
Um grande abraço,
Davidson Paulo