У нас есть ошибка в %preun
скрипт RPM, который мы распространяли в прошлом. Это было исправлено, но теперь обновление до более новой версии не выполняется, потому что предыдущая версия не удаляется чисто:
Error in PREUN scriptlet in rpm package perl-perfSONAR-OPPD-MP-server
/var/tmp/rpm-tmp.veW9Jb: line 5: syntax error: unexpected end of file
error: %preun(perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch) scriptlet
failed, exit status 2
Эту проблему можно решить, удалив устаревший пакет вручную без выполнения %preun
часть, а затем переустановить новую:
rpm -e --nopreun perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch
rpm -i --replacepkgs perl-perfSONAR-OPPD-MP-server-3.5-0.0.a1.pSPS.noarch.rpm
Это ручная процедура, требующая вмешательства системного администратора, чего мы хотели бы избежать.
Кто-нибудь знает, как сделать то же самое с помощью yum, чтобы предыдущий пакет был удален, чтобы новый пакет был установлен без ошибок, и все это с помощью одной команды yum или с помощью автоматического обновления yum?
Мы используем CentOS 6, если это важно.
Нет известного способа автоматизировать обновление yum с помощью скриптов с ошибками: yum не анализирует и не передает необходимые дизейблеры в rpm lib.