Resolvendo problemas com o apt-get

O apt-get é uma ferramenta desenvolvida para ser usada em servidores e outras aplicações importantes. Isto significa que ele foi desenvolvido para ser o mais confiável possível e nunca realizar nenhuma modificação potencialmente perigosa para o
sistema, a menos que autorizado por você.

Quando qualquer coisa inesperada acontece, ele pára e fica esperando sua confirmação antes de fazer qualquer outra coisa.

O problema desta abordagem é que às vezes um defeito em algum pacote ou um download corrompido pode fazer com que o apt fique “travado”, sem concluir a instalação de um determinado pacote por causa de um erro qualquer e sem aceitar instalar outros
antes que o problema inicial seja resolvido.

Este tipo de problema é relativamente raro, mas pode acontecer. Veja um caso particularmente feio que aconteceu certa vez ao tentar atualizar o k3b usando o comando “apt-get install k3b”.

Neste caso ele precisou atualizar algumas bibliotecas do KDE antes de atualizar o programa, mas uma delas estava com um defeito bobo que fazia ela tentar substituir duas associações de arquivos do K3B. Isto passaria despercebido se o
apt-get não entrasse em pânico:

Descompactando substituto kdelibs-data …
dpkg: erro processando /var/cache/apt/archives/kdelibs-data_4%3a3.1.4-2_all.deb (–unpack):

tentando sobrescrever `/usr/share/mimelnk/application/x-cue.desktop’,
que também está no pacote k3b

dpkg-deb: subprocesso paste morto por sinal (Broken pipe)
Erros foram encontrados durante processamento de:
/var/cache/apt/archives/kdelibs-data_4%3a3.1.4-2_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

A partir daí o apt-get se recusava a instalar qualquer outro pacote, pois sempre tentava terminar a instalação do pacote “kdelibs-data” o que sempre acabava no mesmo erro.

Como o tal arquivo a ser substituído não tem importância nenhuma, é apenas uma associação de arquivos, a solução foi simplesmente forçar a instalação do pacote kdelibs manualmente, usando a opção do dpkg que ignora erros:

# dpkg -i –force-all /var/cache/apt/archives/kdelibs-data_4%3a3.1.4-2_all.deb

Depois disso, bastou usar o comando “apt-get -f install” que conclui a instalação de todos os pacotes pendentes, incluindo a atualização do K3B que era meu objetivo inicial. Lembre-se de que você pode usar o botão do meio para colar a
localização do arquivo a partir da mensagem de erro, sem precisar ficar digitando tudo.

Dependendo da situação, você pode remover o pacote com problemas ao invés de forçar sua instalação. Isso é útil em casos de pacotes que realmente estão com problemas mais graves e estão bloqueando a instalação de outros. Neste caso, use o comando “dpkg
-r” , como em:

# dpkg -r k3b

Basicamente, quando encontrar este tipo de problema você deve:

a) Rodar o “apt-get update” para ter certeza que a lista de pacotes do apt está atualizada.

b) Rode o comando “apt-get -f install” para usar o sistema de resolução de problemas do apt.

c) Caso ele não resolva, experimente usar o “dpkg -i –force-all” para forçar a instalação do pacote com problemas, como no meu exemplo, ou use o “dpkg -r pacote” caso prefira desistir da instalação.

d) Rode o comando “dpkg –configure -a“, que verifica pendências na configuração dos pacotes.

d) Rode novamente o “apt-get -f install“. Caso ele não resolva, experimente o “apt-get -f remove“, que tem uma função similar à do “-f install”, mas dá preferência a remover os pacotes com problemas, ao invés de
tentar corrigir a instalação.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X