Tempo de carregamento: 0,339 segundos.

Troubleshooting > Yum > Database disk image is malformed. Recriando o banco.

562 Views
Tempo de leitura: 2 Minutos 
Conteúdo atualizado em

Gerenciadores de pacotes como o YUM são muito sensíveis, pois armazenam dados em arquivos ao invés de um banco de dados relacional. Isso porque a simplicidade é a chave do negócio, haja visto que um banco de dados relacional aumentaria significativamente a quantidade de itens de falha, o que aumentariam as chances de ocorrer falhas.

Essa sensibilidade dos gerenciadores de pacote, por vezes, nos causam falhas de operação dos mesmos. Geralmente essas falhas ocorrem por inconsistências ou corrompimento do banco.

Alguns gerenciadores de pacotes possuem mecanismos para recriar e/ou atualizar esses bancos, mas não todos. É o caso do YUM que é incapaz de reverter seu estado corrompido.

A seguir, veremos como é fácil recriar o banco do YUM para tratar o erro “sqlite3.DatabaseError: database disk image is malformed“.

Cenário:

Ao rodar o `yum install pacote` e confirmar a instalação, o gerenciador tenta alimentar seu banco (um sqlite), mas não consegue e retorna o erro destacado a seguir:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/yum/sqlutils.py", line 166, in executeSQLQmark
    return cursor.execute(query)
sqlite3.DatabaseError: database disk image is malformed

O erro em questão é este: sqlite3.DatabaseError: database disk image is malformed

How-to:

A correção é muito simples. Basta recriar o diretório “/var/lib/yum” onde fica o `.SQLite`, que é o banco do YUM. Para isso, siga os passos abaixo:

1 – Entre no diretório “/var/lib”

cd /var/lib

2 – Renomeie o diretório “yum” para “yum_old”, por exemplo:

mv yum yum_old

3 – Limpe o cache do YUM:

yum clean all

4 – Agora aqueça o cache do yum:

yum makecache

5 – Tente instalar um pacote usando o yum:

yum install pacote

Observação: O mesmo vale para o DNF, sistema de gerenciamento de pacotes do Fedora. Apenas considere alterar “/var/lib/yum” por “/var/lib/dnf”.

Resumão:

O gerenciador de pacotes mesmo é o RPM. O YUM é um cara legal que atualiza as instruções dos repositórios locais e resolve dependências. Portanto, quando o YUM para de funcionar por algum motivo, saibamos que podemos continuar instalando e removendo coisas com `rpm`. Porém, não é fácil resolver todas dependências manualmente.

Contudo, em alguns casos de erro no YUM, basta considerar a recriação do seu banco.

Aqui no Blog Porta 80 há também um how-to de como recuperar o banco do RPM. Segue o link:

https://linuxzilla.com.br/2013/01/29/artigos-rebuild-do-rpm-database/

1 - 0

Thank You For Your Vote!

Sorry You have Already Voted!