【发布时间】:2015-04-10 15:27:56
【问题描述】:
我有几个版本的一些包。最后一个在终止安装脚本的 %pre 部分有错误:
mypak-0.0.1-1.el6.noarch.rpm
mypak-0.0.1-2.el6.noarch.rpm
mypak-0.0.1-3.el6.noarch.rpm <-- bad package
我所有的包在pre、post、preun 和postun 部分都有调试输出。
我安装第一个包:
rpm -Uhv mypak-0.0.1-1.el6.noarch.rpm
输出(param 是传递给脚本部分的参数)是:
Preparing... ########################################### [100%]
pre: 0.0.1-1.el6 ; param = 1
1:mypak ########################################### [100%]
post: 0.0.1-1.el6 ; param = 1
然后我尝试更新我的包并(不小心)一次使用所有包启动 rpm 命令:
rpm -Uhv mypak-0.0.1-*
warning: package mypak = 0.0.1-1.el6 was already added, replacing with mypak > 0.0.1-2.el6
warning: package mypak = 0.0.1-2.el6 was already added, replacing with mypak > 0.0.1-3.el6
Preparing... ########################################### [100%]
pre: 0.0.1-3.el6 ; param = 2
!!!version 3 is bad!!!
error: %pre(mypak-0.0.1-3.el6.noarch) scriptlet failed, exit status 1
error: install: %pre scriptlet failed (2), skipping mypak-0.0.1-3.el6
preun: 0.0.1-1.el6 ; param = 0
postun: 0.0.1-1.el6 ; param = 0
如您所见,我的包裹最终被删除了。此外,即使其他包依赖于它,该包也会被删除。我什至没有收到有关损坏的依赖项的任何警告!
如果我一个接一个地安装我的包,我就没有这个问题。在这种情况下,第三个软件包的安装失败,仅此而已。我的包的以前版本仍然存在。
我认为这确实是一种奇怪的行为。是 rpm 中的错误还是我遗漏了什么?
我在 Centos 6.5 上使用 rpm 4.8.0。
【问题讨论】:
标签: centos dependencies rpm