我有一个已安装在系统中的rpm包。我想用不同包名称的新包替换旧包。 “rpm -Uvh [package name]”应足以用新的包替换旧包。
在网上进行一些研究之后,我发现“Obsoletes”用于废弃旧包并用一个具有不同名称的新包替换它。 我在我的rpm规范文件中使用了“Obsoletes”但是当我尝试从旧包升级时,旧包的%preun被调用$ 1 = 0,我预计$ 1 = 1.
如果我在任何地方出错,请纠正我。这个问题有更好的解决方案吗?
谢谢
答案 0 :(得分:1)
我对你的问题的理解是旧包在你的%preun脚本中做了一些你不想做的事情(比如删除一个用户帐户或类似的东西),对吗?
解决此问题的一种方法是创建旧包的中间虚拟rpm版本N + 1,其中不包含任何文件,升级到该文件然后更新到最终的新包。
答案 1 :(得分:1)
这个问题有更好的解决方案吗?
rpm -e --nopreun <old-package> && rpm -i <new-package>
您可以选择性地启用和禁用特定脚本
--no<scriptname>
,或者您可以使用--noscripts
禁用所有脚本。
确保检查与新包相关的各种脚本; 您可能还必须禁用其中一些。
-Steve
P.S。这可能是ServerFault上更好的问题。 :)