Por que “yum update” falha com muitos duplicados, depois de muitos meses sem atualizações?

2

Após muitos meses (> 6) sem atualizações de software, fiz login em instâncias do EC2 em execução:

Linux version 2.6.32-358.23.2.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Sat Sep 14 05:32:37 EDT 2013

e depois tentou fazer a atualização usual do yum:

# yum update

Bem, isso falhou com erros como estes:

--> Finished Dependency Resolution
Error: Package: coreutils-libs-8.4-19.el6_4.2.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: coreutils = 8.4-19.el6_4.2
           Removing: coreutils-8.4-19.el6_4.2.x86_64 (@rhui-us-east-1-rhel-server-releases)
               coreutils = 8.4-19.el6_4.2
           Updated By: coreutils-8.4-31.el6_5.1.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-31.el6_5.1
           Available: coreutils-8.4-9.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-9.el6
           Available: coreutils-8.4-13.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-13.el6
           Available: coreutils-8.4-16.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-16.el6
           Available: coreutils-8.4-19.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-19.el6
           Available: coreutils-8.4-19.el6_4.1.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-19.el6_4.1
           Available: coreutils-8.4-31.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-31.el6
Error: Package: abrt-addon-python-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: abrt = 2.0.8-16.el6_4.1
           Removing: abrt-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
               abrt = 2.0.8-16.el6_4.1
           Updated By: abrt-2.0.8-21.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-21.el6
           Available: abrt-1.1.13-4.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.13-4.el6
           Available: abrt-1.1.16-3.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.16-3.el6
           Available: abrt-2.0.4-14.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.4-14.el6
           Available: abrt-2.0.8-6.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6
           Available: abrt-2.0.8-6.el6_3.2.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6_3.2
           Available: abrt-2.0.8-15.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-15.el6
Error: Package: abrt-addon-ccpp-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: abrt = 2.0.8-16.el6_4.1
           Removing: abrt-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
               abrt = 2.0.8-16.el6_4.1
           Updated By: abrt-2.0.8-21.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-21.el6
           Available: abrt-1.1.13-4.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.13-4.el6
           Available: abrt-1.1.16-3.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.16-3.el6
           Available: abrt-2.0.4-14.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.4-14.el6
           Available: abrt-2.0.8-6.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6
           Available: abrt-2.0.8-6.el6_3.2.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6_3.2
           Available: abrt-2.0.8-15.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-15.el6
Error: Package: abrt-addon-kerneloops-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: abrt = 2.0.8-16.el6_4.1
           Removing: abrt-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
               abrt = 2.0.8-16.el6_4.1
           Updated By: abrt-2.0.8-21.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-21.el6
           Available: abrt-1.1.13-4.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.13-4.el6
           Available: abrt-1.1.16-3.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.16-3.el6
           Available: abrt-2.0.4-14.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.4-14.el6
           Available: abrt-2.0.8-6.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6
           Available: abrt-2.0.8-6.el6_3.2.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6_3.2
           Available: abrt-2.0.8-15.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-15.el6
Error: Package: glibc-devel-2.12-1.107.el6_4.5.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: glibc-headers = 2.12-1.107.el6_4.5
           Removing: glibc-headers-2.12-1.107.el6_4.5.x86_64 (@rhui-us-east-1-rhel-server-releases)
               glibc-headers = 2.12-1.107.el6_4.5
           Updated By: glibc-headers-2.12-1.132.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.132.el6
           Available: glibc-headers-2.12-1.7.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.7.el6
           Available: glibc-headers-2.12-1.7.el6_0.3.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.7.el6_0.3
           Available: glibc-headers-2.12-1.7.el6_0.4.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.7.el6_0.4
           Available: glibc-headers-2.12-1.7.el6_0.5.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.7.el6_0.5
           Available: glibc-headers-2.12-1.25.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.25.el6
           Available: glibc-headers-2.12-1.25.el6_1.3.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.25.el6_1.3
           Available: glibc-headers-2.12-1.47.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.47.el6
           Available: glibc-headers-2.12-1.47.el6_2.5.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.47.el6_2.5
           Available: glibc-headers-2.12-1.47.el6_2.9.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.47.el6_2.9
           Available: glibc-headers-2.12-1.47.el6_2.12.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.47.el6_2.12
           Available: glibc-headers-2.12-1.80.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6
           Available: glibc-headers-2.12-1.80.el6_3.3.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.3
           Available: glibc-headers-2.12-1.80.el6_3.4.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.4
           Available: glibc-headers-2.12-1.80.el6_3.5.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.5
           Available: glibc-headers-2.12-1.80.el6_3.6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.6
           Available: glibc-headers-2.12-1.80.el6_3.7.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.7
           Available: glibc-headers-2.12-1.107.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.107.el6
           Available: glibc-headers-2.12-1.107.el6_4.2.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.107.el6_4.2
           Available: glibc-headers-2.12-1.107.el6_4.4.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.107.el6_4.4
 You could try using --skip-broken to work around the problem
** Found 143 pre-existing rpmdb problem(s), 'yum check' output follows:

Depois de ler vários artigos, tentei várias coisas para corrigir o problema:

  • Ran yum clean all , depois yum update .
  • Ran rpmdb --rebuilddb , depois package-cleanup --dupes e, em seguida, package-cleanup --cleandupes .
  • Ran yum-complete-transaction , etc.

Em todos os casos, acabei no mesmo lugar. Um artigo sugeriu que eu poderia ter pacotes conflitantes para glibc. De qualquer forma, não sei dizer o que está acontecendo. Devemos Eu recolojo meu EC2 ou alguém tem uma solução?

Obrigado!

    
por Kode Charlie 04.05.2014 / 06:04

6 respostas

7

Resolver as atualizações do yum para o meu ambiente RHEL 6.4 (Fedora 12+) consumiu muito tempo, mas foi bem-sucedido. Quero compartilhar o que fiz e o que poderia ter sido melhor.

  1. Identifiquei todas as duplicatas do pacote. Presumivelmente, package-clean --dupes faz o mesmo. Outro comando útil foi rpm -qa package-name , que identificou pacotes duplicados por prefixo ou nome de pacote genérico.
  2. Eu então removi todas versões de coreutils e coreutils-lib , mais ou menos seguindo essa sequência de comandos: (i) rpm -e --nodeps coreutils , (ii) rpm -e --nodeps coreutils-lib , (iii) updatedb e (iv) yum clean all . OBSERVAÇÃO: a remoção de coreutils geralmente NÃO é recomendável, pois gera muitos outros comandos inoperantes.
  3. Eu reinstalei as versões mais recentes de coreutils e coreutils-lib : yum install coreutils coreutils-lib
  4. Neste ponto, eu ainda tinha 100 pacotes duplicados. Infelizmente, meu EC2 está executando uma micro instância e, em várias execuções de package-cleanup --cleandupes , tive problemas de alocação de memória, bem como problemas de memória. Assim, tive que remover manualmente cada pacote duplicado, usando o comando mencionado anteriormente: rpm -e --nodeps package-name .
  5. Após a remoção dos pacotes duplicados, executei (i) updatedb , (ii) yum clean all e (iii) yum update .

Depois de tudo isso, as coisas agora funcionam.

SUGESTÃO: seria útil se houvesse um comando como "yum self-solve". Ele exerceria uma política de adivinhação de quais pacotes eliminar e o que manter, de modo a atualizar um ambiente obsoleto. Se tal comando já existir, por favor me avise.

    
por 06.05.2014 / 17:23
7

Para mim, trabalhou sudo package-cleanup --cleandupes

    
por 23.01.2015 / 23:48
0

Eu também já fui incapaz de atualizar meu sistema ( package-cleanup ou yum clean all também não ajudou). Depois de dois dias, consegui.

Se você não adicionou repositórios não oficiais à sua distribuição, pode ser um problema do seu espelho ou apenas uma atualização de pacote ruim / incompleta no repositório (que provavelmente será corrigido em breve).

    
por 06.05.2014 / 17:17
0

Apenas jogando isso para o caso de ajudar alguém a avançar. Eu tinha o repo de teste de atualizações do fedora habilitado porque eu precisava de algo para resolver o problema de x-window. Eu esqueço de desabilitá-lo depois, até que, em um período de atualização, recebi um bazilhão de duplicatas. Desativando o repositório pelo sudo vi /etc/yum.repos.d/fedora-updates-testing.repo e alterando enabled = 1 para enabled = 0 se livrou de todas as duplicatas, e a atualização funcionou bem.

    
por 17.01.2015 / 22:32
0

O que funcionou para mim foi correr:

yum distro-sync
package-cleanup --cleandupes --skip-broken
yum update

A chave que pareceu consertar as coisas foi a primeira linha - yum distro-sync

    
por 30.05.2015 / 01:03
-2

registre-se no servidor de satélite que funcionou para mim, antes era necessário redhat 5.x canal e registre-se em rhel 6 canais resolveu o problema.

    
por 03.02.2017 / 15:34

Tags