domingo, 1 de agosto de 2010

Resolvendo o Congelamento do APT-GET / Synaptic


Recentemente passei por um problema com o Synaptic/APT-GET, e, gostaria de dividir com vocês uma maneira simples de resolver esse problema.

APT-GET - Uma sacada Genial
APT-GET é uma ferramenta muito boa para se trabalhar com instalação de pacotes. Existem outras, mais recentes, mas, a robustez, confiabilidade e facilidade da ferramenta APT-GET lhe dão um lugar de destaque nas principais distros.
Nascida na distro Debian, foi portada para as distros com pacotes RPM pela nossa saudosa Conectiva.
A ferramenta APT-GET busca dos repositórios listas de dados sobre todos os pacotes da distribuição, e, constrói um banco de dados relacionando os pacotes, suas dependências, quais pacotes novos no repositório, quais estão deprecados e assim por diante.

Quando se faz um apt-get update ou se aperta o botão recarregar do Synaptic, diversas listas são baixadas dos repositórios, e, dessas listas se constrói um banco de dados que relaciona todos os pacotes.
Bem, quando há algum problema nessa fase do procedimento, no momento de baixar as listas ou de construir o banco de dados, pode botar tudo a perder. E, isso aconteceu comigo.
No momento de gerar o banco de dados, houve uma corrupção de arquivos. Resultado: Nem o apt-get funcionava mais, e nem o Synaptic.

Nada de Pânico, a solução é Simples
Quando isso aconteceu comigo, fiquei preocupado, já que não estava vendo uma solução: O Synaptic congelava e o apt-get (na linha de comando) também.
Pensei... Formatar e reinstalar ???
Foi quando comecei a pesquisar um pouco mais a fundo sobre o apt-get e o Synaptic (ou, qualquer outro front-end gráfico, AdePT, APTitude, etc...)
E, a solução é bem simples. Os passos que darei aqui são relativos a distros que usam pacotes RPM, mas, a analogia pode ser feita para distros baseadas em pacotes deb também.

  1. Procure o seguinte o diretório /var/lib/rpm
  2. Nesse diretório vão estar os arquivos do banco de dados do apt-get/synaptic. São arquivos com a seguinte nomenclatura __db.000 por diante. Dependendo do tamanho dos repos, poderão ter diversos arquivos assim.
  3. A seguir, apague todos os arquivos __db que existirem nesse diretório. Claro que você deverá estar logado como root. E, muito cuidado se for fazer rm -f. O ideal é usar um gerenciador de arquivos gráfico aqui, para você ver quais arquivos vai apagar e não cometer nenhum erro.
  4. Depois de apagar os arquivos __db, digite os seguintes comandos: #rpm -v --rebuilddb . Isso vai reconstruir o banco de dados do apt-get
  5. Se tudo correr bem, você poderá, a partir de agora, usar o comando apt-get e seus front-ends gráficos sem problemas. E, sem precisar reinstalar sua distro.

Essas dicas são válidas para as distros baseadas em pacotes RPM: Red Hat, Mandriva, PCLinuxOS, CentOS e Fedora. Mas, com as devidas adaptações, podem rodar em distros com pacotes deb.

Um comentário: