7

我有两个问题想找出解决方案:

我正在重命名 munin 2.0 包,并且在 RPM 的 SPEC 文件中我必须废弃原来的 munin 包。

当替换现有的 1.x munin 包作为 munin-node 的 postun 脚本的一部分时,它会删除 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在这两种情况下,它都会在我的 rpm 安装后运行脚本。有没有办法解决这个问题?

4

1 回答 1

0

我唯一能想到的就是一个hack,你将你的内容复制%pre到另一个位置,然后%trigger卸载另一个包将它们放回去。不是最好的形式,但它可能会起作用。还要求您在卸载之前安装。

于 2013-04-05T09:52:32.627 回答