Назад | Перейти на главную страницу

Автоматически удалить% preun сломанный RPM?

У нас есть ошибка в %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.