我有3个软件包,我们正在构建spec
文件,以便安装我们的应用程序:
Package A
Package B
Package C
A depends on B
A depends on c
问题是这些软件包中的每个软件包都会在安装之前安装需要App Server关闭的东西,并在安装后重新启动。
如果仅安装B或C,则可以。
安装A时出现的问题以及B和/或C的新版本,最终我的App Server重启3次,每次重启需要10分钟。
当我们构建RPM时,有没有办法让A和B检测到它们是作为A的依赖项安装/更新的,而不是重新启动服务器并让A这样做?
答案 0 :(得分:1)
我不知道是否有本地方法可以做到这一点,但我过去所做的就是让目标服务正在运行时%pre
检查所有包(例如{{1} })。如果是,请将其关闭并使用httpd
在将来的合理时间内重启(例如两分钟)。每个RPM还检查重新启动是否已经在队列中(我使用了像“n”或其他东西一样的随机队列),如果是,则将其再次撞击两分钟。最终结果应该是服务器在安装最终软件包两分钟后才出现一次。
缺点:即使at
是in the LSB,由于某种原因,少数计算机没有安装它,因此我必须将其添加到我的at
标记。