我们在过去分发的RPM的%preun脚本中有错误。 这已得到纠正,但现在升级到较新的版本失败,因为以前的版本并没有彻底清除:
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
这是一个需要系统pipe理员干预的手动过程,我们希望避免。
是否有人知道通过yum做同样的方法,以便以前的软件包被删除的新的安装没有错误,所有只有一个yum命令或通过百胜自动升级?
如果有问题,我们正在使用CentOS 6。
没有已知的方法来自动化yum升级与buggy脚本:yum不parsing,也不必将必要的禁用到rpm lib。