Каков эффект скриптлетов RPM, возвращающих 1?

Каков эффект скриптлетов RPM, возвращающих 1?

Согласно документации RPM,%пред,%почта,%преуни%постунСкриптлеты должны возвращать 0 для продолжения (де)установки.

(1)Но каков эффект, если один из этих скриптлетов возвращает ненулевое значение?

(2)Будет ли отменена выполненная до сих пор операция, оставив систему в том состоянии, в котором она была до вызова (де)установки RPM?

(3)Задействован ли механизм транзакции?

Я просмотрел документацию (много страниц, включая официальную документацию Fedora), но не нашел никаких подсказок (по крайней мере, ничего «черно-белого», насколько я понимаю).

решение1

Информация, которую я нашел, взята из Ошибка RedHat 216221 от ноября 2006 года. Я не знаю, актуален ли еще следующий текст.

Последняя запись поста гласит:

  • %pre и %preun скриптлеты, завершающиеся с ненулевым кодом, приводят к сбою установки/удаления, как и раньше. Это поведение необходимо сохранить, так как различные пакеты используют его для предотвращения установки/удаления при некоторых условиях.
  • Ненулевой код выхода из других скриптлетов рассматривается только как предупреждение (т.е. при сбое %postun будет выведено предупреждение, но пакет все равно будет удален)
  • скриптлеты, умирающие по сигналам и другим «ненормальным» причинам, по-прежнему рассматриваются как ошибки
  • для всех ошибок скриптлета отправляется уведомление RPMCALLBACK_SCRIPT_ERROR в функцию обратного вызова с тегом неудачного скрипта, переданным в параметре «amount» и параметре «total», содержащем RPMRC_OK / RPMRC_FAIL, чтобы сообщить, обработал ли rpm это как предупреждение или ошибку

решение2

У меня есть только частичные ответы, но я надеюсь, что они помогут вам в пути...

  1. установка будет рассмотренанеуспешный, но насколько мне известно, реального влияния это не оказывает: файлы по-прежнему будут присутствовать в вашей системе и т. д. %preunОднако у меня возникли проблемы с удалением пакета, когда скриптлет не сработал.
  2. Никакие операции не отменяются.. rpmне может волшебным образом узнать, как отменить команды, которые вы помещаете в свои скриптлеты.
  3. Я не знаю, задействован ли механизм транзакций. Вы можете провести несколько тестов для этого: установить хороший rpm и один с неисправным %postскриптом...

Связанный контент