Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Reconstruindo a base de dados do RPM
Colaboração: Marcelo de Gomensoro Malheiros
Data de Publicação: 04 de Abril de 2002
Hoje eu tive um problema em um servidor que eu mantenho, e como consegui resolvê-lo achei interessante compartilhar esta dica.
É uma máquina que está ainda com o Conectiva 6.0, mas que eu rotineiramente atualizo via APT.
Para quem não ouviu falar ainda do APT, é um sistema genérico de gerenciamento de pacotes, de mais alto nível que o RPM. Ele foi inicialmente desenvolvido para a distribuição Debian, que usa pacotes no formato DEB, mas foi recentemente portado pelo pessoal da Conectiva para operar também em cima do RPM.
A grande vantagem do APT é que ele permite que instalações e atualizações de pacotes (ou conjuntos dos mesmos) sejam feitas automaticamente, preservando dependências e checando por versões mais recentes, inclusive se encarregando de fazer o download via rede. Para mais detalhes leia o página de manual do "apt-get".
Bom, o fato é que ao fazer uma dessas atualizações de rotina o APT encontrou um conflito entre duas versões do pacote "cpp" no servidor, e pediu para que eu resolvesse isso. Eu removi a versão mais antiga do pacote como recomendado, mas por alguma razão que desconheço (provavelmente um bug da versão do RPM que eu tenho instalado nesta máquina) a base de dados dos pacotes RPM ficou corrompida. Ao rodar o comando "rpm -qa" eu obtia uma listagem do tipo:
# rpm -qa
apache-1.3.22-1U60_3cl
apache-doc-1.3.22-1U60_3cl
...
(null)-(null)-(null)
Isso passou a afetar o APT, que abortava ao encontrar essa inconsistência na base do RPM e não funcionava mais. Felizmente eu encontrei a opção "--rebuilddb" do programa "rpm", que reconstruiu a base de dados do RPM, agora sem erros:
# rpm --rebuilddb
# apt-get check
Processing File Dependencies... Done
Reading Package Lists... Done
Building Dependency Tree... Done
Agora tudo voltou ao normal.
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.




