%preun
我们在过去分发的 RPM的脚本中有错误。这已得到纠正,但现在升级到较新版本失败,因为以前的版本没有完全卸载:
Error in PREUN scriptlet in rpm package perl-perfSONAR-OPPD-MP-server
/var/tmp/rpm-tmp.veW9Jb: line 5: syntax error: unexpected end of file
error: %preun(perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch) scriptlet
failed, exit status 2
这可以通过手动卸载过时的包而不执行该%preun
部分然后重新安装新包来解决:
rpm -e --nopreun perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch
rpm -i --replacepkgs perl-perfSONAR-OPPD-MP-server-3.5-0.0.a1.pSPS.noarch.rpm
这是一个手动过程,需要系统管理员的干预,我们希望避免。
是否有人知道通过 yum 执行相同操作的方法,以便删除以前的软件包以便新的软件包在没有错误的情况下安装,所有这些都使用单个 yum 命令或通过 yum 自动升级?
如果这很重要,我们正在使用 CentOS 6。
没有已知的方法可以使用有缺陷的脚本自动升级 yum:yum 不会解析也不会将必要的禁用程序传递给 rpm lib。