Я выполнял рутину yum update
когда он начинает выдавать поток «нефатальных» ошибок. Он жаловался, что машине не хватает памяти. Тем не менее yum не счел нужным останавливать этот поезд.
Итак, когда это было сделано, я запустил еще один yum update
Чтобы проверить, он перечислил более 100 пакетов, которые являются дубликатами. Видимо, из-за нехватки памяти yum не могла удалить дубликаты. После некоторых поисков я нашел package-cleanup --cleandupes
команда. Это аккуратно перечислило дубликаты и предложило их удалить. ДА!
Моя радость была недолгой, когда она сопровождалась ошибкой: iptables = 1.4.21-34.el7 is needed by (installed) iptables-services-1.4.21-34.el7.x86_64
Хотя это правда, дубликат, который он указал для удаления, был версией 1.4.21-33.el7.
При попытке вручную: rpm -e --justdb iptables-services-1.4.21-33.el7.x86_64
он снова говорит:
error: Failed dependencies:
iptables = 1.4.21-34.el7 is needed by (installed) iptables-services-1.4.21-34.el7.x86_64
Кажется, он не понимает, что я хочу удалить версию «33», а не «34». Как я могу это решить?
Хорошо, попробуем еще несколько вариантов принудительного удаления дубликатов (которые, кстати, rpm
не поддерживает, работает только для установки и обновления пакетов) наткнулся на --removenewestdupes
вариант для package-cleanup
команда. Фактически это решает проблему с другой стороны, прося удалить новее а не более старые версии.
Выдача:
package-cleanup --cleandupes --removenewestdupes
... прошло без ошибок. После этого я мог сделать yum update
чтобы правильно обновить старые пакеты, и все снова вернулось на круги своя.