Yum

自動刪除 %preun 損壞的 RPM?

  • July 8, 2015

%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。

引用自:https://serverfault.com/questions/702558