Como remover duplicatas após uma atualização com falha do yum?

1

Eu provavelmente fiquei sem memória quando tentei atualizar pacotes no meu sistema CentOS. Agora, quando tento executar atualizações, ficou preso:

Error: Package: glibc-devel-2.17-157.el7_3.5.x86_64 (@updates)
           Requires: glibc-headers = 2.17-157.el7_3.5
           Removing: glibc-headers-2.17-157.el7_3.5.x86_64 (@updates)
               glibc-headers = 2.17-157.el7_3.5
           Updated By: glibc-headers-2.17-196.el7.x86_64 (base)
               glibc-headers = 2.17-196.el7
 You could try using --skip-broken to work around the problem
** Found 75 pre-existing rpmdb problem(s), 'yum check' output follows:
audit-2.6.5-3.el7_3.1.x86_64 has missing requires of audit-libs(x86-64) = ('0', '2.6.5', '3.el7_3.1')

Parece que há muitos pacotes duplicados. Eu tentei reverter a atualização com yum history undo 48 mas ela aparece com um monte de mensagens 'Falha ao fazer downgrade: this-or-that-package.x86-64'. Então isso não ajudou. Eu também tentei:

package-cleanup --cleandupes

Ele pede para remover 50 pacotes, mas resulta em:

ERROR with transaction check vs depsolve:
systemd = 219-42.el7_4.1 is needed by (installed) systemd-sysv-219-42.el7_4.1.x86_64
systemd = 219-42.el7_4.1 is needed by (installed) systemd-sysv-219-42.el7_4.1.x86_64
openssh = 7.4p1-12.el7_4 is needed by (installed) openssh-clients-7.4p1-12.el7_4.x86_64
openssh = 7.4p1-12.el7_4 is needed by (installed) openssh-clients-7.4p1-12.el7_4.x86_64
iptables = 1.4.21-18.0.1.el7.centos is needed by (installed) iptables-services-1.4.21-18.0.1.el7.centos.x86_64
Complete!
(1, [])

Não sei como consertar isso. O mais importante é que o tempo de inatividade é limitado e que eu posso instalar as atualizações novamente em uma base regular (como está em uso como um servidor). Espero que alguém possa sugerir alguns passos para resolver esses problemas de dependência.

uname -a
Linux host.example.com 3.10.0-123.8.1.el7.x86_64 #1 SMP Mon Sep 22 19:06:58 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    
por Roderik 20.10.2017 / 23:23

1 resposta

1

É possível que alguns pacotes tenham sido instalados, mas os antigos ainda não foram removidos e a 'transação' não foi concluída, portanto você está em um estado estranho em que package1 é muito antigo para suportar o package2.

Eu tinha algo parecido, mas apenas em um pacote. Apenas me disse que systemd conflicts with dracut-033-502.el7 ( yum check também relatou muitos pacotes duplicados).

Para resolver isso, verifiquei as versões do dracut:

rpm -vqa | grep dracut

... e, em seguida, fez o downgrade para a versão anterior, removendo a versão mais alta. Isso livrou-se do pacote conflitante. Daí em diante:

package-cleanup --dupes

... livrou-se das duplicatas e, finalmente, uma:

yum update

... para atualizar tudo e corrigir todos os erros.

    
por 04.12.2017 / 17:58