Как удалить дубликаты после неудачного обновления yum?

У меня, вероятно, закончилась память, когда я пытался обновить пакеты в своей системе CentOS. Теперь, когда я пытаюсь запустить обновления, он завис:

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')

Похоже, есть много повторяющихся пакетов. Я попытался отменить обновление с помощью yum history undo 48 , но он выдает много сообщений «Не удалось перейти на более раннюю версию: этот или тот-пакет.x86-64». Так что это не помогло. Я также пробовал:

package-cleanup --cleandupes

Он просит удалить 50 пакетов, но в результате:

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, [])

Я не знаю, как это исправить. Наиболее важно то, что время простоя ограничено, и я могу регулярно устанавливать обновления (поскольку он используется в качестве сервера). Я надеюсь, что кто-то может предложить некоторые шаги для решения этих проблем с зависимостями.

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
1
задан 21 October 2017 в 00:23
1 ответ

Возможно, некоторые пакеты были установлены, но старые еще не удалены, и «транзакция» не завершилась, поэтому вы находитесь в странном состоянии, когда package1 слишком стар для support package2.

У меня было нечто подобное, но только на одном пакете. Мне только что сообщалось, что systemd конфликтует с dracut-033-502.el7 ( yum check также сообщал о множестве дублирующихся пакетов).

Чтобы решить эту проблему, я проверил версии dracut :

rpm -vqa | grep dracut

... а затем откатился до предыдущей версии, удалив самую старшую версию. Это избавило от конфликтующего пакета. С этого момента:

package-cleanup --dupes

... избавился от дубликатов, а затем, наконец,:

yum update

... чтобы все обновить и в целом исправить все ошибки.

2
ответ дан 3 December 2019 в 20:18

Теги

Похожие вопросы