rpm包创​​建:升级期间的scriptlet排序

时间:2015-02-20 15:16:08

标签: centos packaging rpm rhel

我正在尝试创建一个包,并且必须按特定顺序调用上一个和新包的安装/卸载脚本。

根据 http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#RPM_scriptlet_recipes,在升级已安装的软件包时,首先运行新软件包的{pre,post}安装脚本,然后运行旧软件包的{pre,post}卸载。

这意味着有时会安装两个软件包。这怎么可能?新包是否安装在chroot的某个地方?我找不到任何相关的东西。

此外:如何在安装结束时启动服务? 如果我在安装后的scriplet上添加“service start xxx”,那么当升级预升级时会运行,这将再次停止服务..

1 个答案:

答案 0 :(得分:0)

是rpm执行擦除前安装以防止没有安装软件包的窗口,这在安装前擦除时会发生。

将跳过替换以前文件的新安装文件。

对于卸载脚本,您需要测试$ 1来区分 “升级”之间(你不想停止刚启动的服务) 和“删除”。

删除包时,

$ 1将为零。

使用“rpm -q --scripts ...”

检查具有守护进程的类似包