rpm规范文件魔术:每次更新软件包Y时,都会自动更新软件包X

时间:2019-06-04 04:25:19

标签: rpm rpm-spec

简而言之,我有两个软件包:X和Y。X取决于Y。我将为X创建一个RPM(编写规格文件等),而Y rpm已经存在。

问题是,尽管X可以并且应该与Y的任何版本一起使用,但是每当更新Y时,都必须将其删除并重新安装X。什么样的rpm魔术可以解决这个问题?

原因如下。 X仅通过Y提供的命令进行安装和卸载。该命令本身不会更改。但是,Y的命令可能因版本而异。

此外,该命令不仅将文件添加到文件系统。似乎正在更新属于Y的二进制DB文件,谁知道该DB文件中的内容。

对我来说,每当我有一个新的Y时,都将X卸载并重新安装确实很有意义。实际上,到目前为止,X是手动安装的。

1 个答案:

答案 0 :(得分:1)

我认为您不会导致rpm的卸载并重新安装。但是,如果我理解得很好,您想在每次 Y 更新时运行某种 destroy recreate 操作吗?

您可以使用triggers进行管理:

在X.spec中,您可以放置​​:

%triggerin -- Y
# this script runs each time Y is installed or updated
# and will also run upon installation of X if Y was already installed before
# do your DB manipulation here