简而言之,我有两个软件包:X和Y。X取决于Y。我将为X创建一个RPM(编写规格文件等),而Y rpm已经存在。
问题是,尽管X可以并且应该与Y的任何版本一起使用,但是每当更新Y时,都必须将其删除并重新安装X。什么样的rpm魔术可以解决这个问题?
原因如下。 X仅通过Y提供的命令进行安装和卸载。该命令本身不会更改。但是,Y的命令可能因版本而异。
此外,该命令不仅将文件添加到文件系统。似乎正在更新属于Y的二进制DB文件,谁知道该DB文件中的内容。
对我来说,每当我有一个新的Y时,都将X卸载并重新安装确实很有意义。实际上,到目前为止,X是手动安装的。
答案 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