Como reconstruir o banco de dados RPM corrompido no CentOS

Como reconstruir o banco de dados RPM corrompido no CentOS

O RPM O banco de dados é composto de arquivos sob o /var/lib/rpm/ diretório em CENTOS e outras distribuições corporativas do Linux, como RHEL, OpenSuse, Oracle Linux e mais.

Se o RPM O banco de dados está corrompido, RPM Não funcionará corretamente, portanto, as atualizações não podem ser aplicadas ao seu sistema, você encontra erros enquanto atualiza os pacotes em seu sistema via Yum Package Manager. O pior cenário está sendo incapaz de executar nenhum RPM e yum comandos com sucesso.

Leia também: 20 exemplos práticos do comando rpm no Linux

Existem vários fatores que podem levar à corrupção do banco de dados do RPM, como transações anteriores incompletas, instalação de determinado software de terceiros, remoção de pacotes específicos e muitos outros.

Neste artigo, mostraremos como reconstruir um banco de dados RPM corrompido; Dessa forma, você pode se recuperar de uma corrupção de banco de dados RPM em CentOS. Isso requer privilégios de usuário root, caso contrário, use o comando sudo para obter esses privilégios.

Reconstrua o banco de dados RPM corrompido no CentOS

Primeiro, comece backup do seu banco de dados RPM atual antes de prosseguir (você pode precisar no futuro), usando os seguintes comandos.

# mkdir /backups / # tar -zcvf /backups /rpmdb -$ (data +"%d%m%y").alcatrão.gz/var/lib/rpm 
Backup RPM Database

Em seguida, verifique a integridade do arquivo de metadados do pacote mestre /var/lib/rpm/pacotes; Este é o arquivo que precisa de reconstrução, mas primeiro remova /var/lib/rpm/__ dB* arquivos para evitar bloqueios obsoletos usando os seguintes comandos.

# rm -f/var/lib/rpm/__ db* #/usr/lib/rpm/rpmdb_verify/var/lib/rpm/pacotes 
Verifique o banco de dados RPM

Caso a operação acima falhe, o que significa que você ainda encontra erros, deve despejar e carregar um novo banco de dados. Verifique também a integridade do arquivo de pacotes recém -carregados da seguinte maneira.

# CD/var/lib/rpm/ # mv pacotes.#/usr/lib/rpm/rpmdb_dump pacotes.traseiro | /usr/lib/rpm/rpmdb_load Pacotes #/usr/lib/rpm/rpmdb_verify pacotes 
Bases de dados de RPM de despejo e carregamento

Agora, para verificar os cabeçalhos do banco de dados, consulte todos os pacotes instalados usando o -q e -a bandeiras e tente observar cuidadosamente qualquer erro enviado ao stderror.

# rpm -qa>/dev/null #Output é descartado para permitir a impressão de erros apenas 

Por último, mas não menos importante, reconstrua o banco de dados RPM usando o seguinte comando, o -vv a opção permite exibir muitas informações de depuração.

# rpm -vv --rebuilddb 
Reconstrua o banco de dados RPM

Use a ferramenta DCRPM para detectar e corrigir o banco de dados RPM

Nós também descobrimos o dcrpm (Detectar e correto RPM) Ferramenta de linha de comando usada para identificar e corrigir problemas bem conhecidos para fazer com a corrupção do banco de dados RPM. É uma ferramenta simples e fácil de usar que você pode executar sem opção. Para um uso eficaz e confiável, você deve executá -lo regularmente via Cron.

Você pode instalá -lo da fonte; Baixe a árvore de origem e instale -a usando configurar.py (que deve pegar o psutil dependência de Pypi também), como mostrado.

# clone git https: // github.com/facebookincubator/dcrpm.Git # CD DCRPM # Python Setup.py install 

Depois de instalar dcrpm, execute como mostrado.

# dcrpm 

Por fim, tente executar seu comando fracassado ou yum novamente para ver se tudo está funcionando bem.

DCRPM Github Repository: https: // github.com/facebookincubator/dcrpm
Você pode encontrar mais informações da página de recuperação do banco de dados RPM.

Isso é tudo! Neste artigo, explicamos como reconstruir um banco de dados de RPM corrompido no CentOS. Para fazer perguntas ou compartilhar seus pensamentos sobre este guia, use o formulário de feedback abaixo.