проблема со скриптами postun при переименовании пакета munin

У меня есть две проблемы, которые я хотел бы найти решение:

Я переименовываю пакет munin 2.0, и в файле SPEC для RPM я должен сделать устаревшими исходные пакеты munin.

При замене существующего пакета munin 1.x в составе скриптлетов postun munin-node пользователь munin удаляется.

postuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ]; then
    /usr/sbin/userdel munin || logger -t munin/rpm "User \"munin\" could not be deleted."
#       /usr/sbin/groupdel munin || logger -t munin/rpm "Group \"munin\" could not be deleted."
fi

Когда я заменяю существующий пакет munin 2.0, postun удаляет содержимое каталога плагинов.

postuninstall scriptlet (using /bin/sh):
if [ "$1" = "0" ]; then
   [ -d /etc/munin/plugins ] && \
find /etc/munin/plugins/ -maxdepth 1 -type l -print0 | \
   xargs -0 rm || :
fi

Так как yum устанавливает новый пакет, а затем запускает посты для старого пакета и $1 = 0, в обоих случаях он запустит скрипты после того, как мои пакеты будут установлены. Есть ли способ обойти это?


person user2245956    schedule 04.04.2013    source источник


Ответы (1)


Единственное, что я могу придумать, это хак, при котором вы копируете содержимое своего %pre в другое место, а затем %trigger при удалении другого пакета, чтобы вернуть его обратно. Не лучшая форма, но может сработать. Также требует, чтобы вы были установлены перед удалением.

person Aaron D. Marasco    schedule 05.04.2013