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.
Deixe seu comentário