我有两个问题,我想找出一个解决方案:
我将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
复制到其他位置。不是最好的形式,但它可能会起作用。还要求您在卸载之前已安装。