Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Aprenda inglês de uma vez por todas

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Pacotes duplicados RPM e o apt

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.

Veja a relação completa dos artigos de Ivan de Gusmão Apolonio

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1157 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Objective-C Fundamental