De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Ivan de Gusmão Apolonio
Data de Publicação: 08 de Novembro de 2001
A partir da versão 6 do Conectiva Linux os usuários tiveram uma facilidade nunca vista antes para atualização dos pacotes do sistema: o apt. Criado originalmente para o Debian e posteriormente portado para o Conectiva Linux, o apt é um software que checa atualizações de pacotes e, caso haja, ele baixa e instala os pacotes novos. Porém, às vezes alguns pacotes estão com problemas e o apt ainda não sabe como lidar com esses problemas e por isso temos que resolvê-los na mão mesmo.
Quando se instala e desinstala um pacote RPM, ele executa um script, o qual serve para criar/remover diretórios, checar dependências, etc. Um problema que já tive é que em alguns pacotes este script está com algum problema de modo que ele não consegue desinstalar o pacote e conseqüentemente o apt não consegue atualizá-lo. Na verdade o apt instala o pacote novo sem excluir o velho e ficam ambos instalados, fica uma bagunça!!! Aí, quando a gente dá um apt-upgrade ele dá uma mensagem como esta:
# apt-get upgrade Processing File Dependencies... Done Reading Package Lists... Error! E: There are two or more versions of the package 'mtools' installed in your system, which is a situation APT can't handle cleanly at the moment. Please do one of the following: 1) Remove the older packages, leaving only one version installed; or 2) If you do want to have multiple versions of that package, add the package names to the RPM::AllowedDupPkgs option. E: Error occured while processing mtools (UsePackage2) E: Problem with MergeList /var/lib/rpm/Packages E: The package lists or status file could not be parsed or opened.
Neste exemplo nós temos 2 pacotes mtools instalados e por isso o apt não consegue fazer mais nada! A solução é desinstalar ambos os pacotes repetidos sem executar os scripts do rpm, ou seja, removê-los apenas do banco de dados do rpm e depois de removidos instalar apenas o pacote atualizado. O comando para desinstalar é o seguinte:
rpm -e --nodeps --allmatches --justdb mtools
onde:
-e remove o pacote -- nodeps desinstala o pacote mesmo que isso quebre dependências de outros pacotes -- allmatches desinstala todos os pacotes que tiverem o mesmo nome (no nosso caso são 2 mtools) -- justdb apenas remove o pacote do banco de dados RPM mas deixa os arquivos no lugar
Uma vez desinstalados os pacotes duplicados temos que instalar o novo. O apt guarda os pacotes que ele baixa no diretório /var/cache/apt/archives. Basta entar lá e instalar o mtools.
rpm -Uvh mtools-versão.i386
Pronto! Agora já se pode usar novamente o apt e continuar mantendo seu sistema atualizado.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários