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

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

当替换现有的1.x munin软件包作为munin-node的postun scriptlet的一部分时,它将删除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会删除plugins目录的内容。
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后运行脚本。有办法解决这个问题吗?

最佳答案

我唯一能想到的就是黑客攻击,您可以将%pre中的内容复制到另一个位置,然后在卸载其他软件包时将%trigger复制到其他位置。不是最好的形式,但它可能会起作用。还要求您在卸载之前已安装。

10-08 09:36