% preun передается со значением от 0 до $ 1 во время обновления - PullRequest
2 голосов
/ 15 июня 2009

У меня есть пакет rpm, который уже установлен в системе. Я хочу заменить старый пакет новым пакетом с другим именем пакета. «Rpm -Uvh [имя пакета]» должно быть достаточно, чтобы заменить старый пакет новым.

Проведя некоторые исследования в сети, я обнаружил, что "Obsoletes" используется для устаревания старого пакета и замены его новым пакетом с другим именем. Я использовал «Obsoletes» в моем файле спецификации rpm, но когда я пытаюсь обновить старый пакет,% preun старого пакета вызывается с $ 1 = 0, который я ожидал равным $ 1 = 1.

Пожалуйста, поправьте меня, если я пойду не так. Есть ли лучшее решение для этой проблемы?

Спасибо

Ответы [ 2 ]

1 голос
/ 19 июня 2009

Есть ли лучшее решение для этой проблемы?

rpm -e --nopreun <old-package> && rpm -i <new-package>

вы можете выборочно включать и отключать определенные скрипты с --no<scriptname>, или вы можете отключить все сценарии с помощью --noscripts.

убедитесь, что вы проверили различные сценарии, связанные с новым пакетом; возможно, вам придется отключить некоторые из них.

-Стив

p.s. вероятно, этот вопрос лучше разместить на ServerFault . :)

1 голос
/ 17 июня 2009

Мое понимание вашей проблемы состоит в том, что старый пакет выполняет в своем сценарии% preun что-то, чего вы не хотели бы делать (например, удаление учетной записи пользователя или чего-то в этом роде), верно?

Одним из способов решения этой проблемы может быть создание промежуточной фиктивной версии n + 1 rpm старого пакета, которая не содержит файлов, обновите ее и обновите до окончательного нового пакета.

...