Scripting 我能告诉你下一步要安装哪些软件包吗?

Scripting 我能告诉你下一步要安装哪些软件包吗?,scripting,rpm,suse,zypper,Scripting,Rpm,Suse,Zypper,我有3个软件包,我们正在为其构建spec文件以安装我们的应用程序: Package A Package B Package C A depends on B A depends on c 问题在于,这些软件包中的每一个都需要在安装前关闭应用程序服务器,并在安装后重新启动 如果您只安装B或C,这很好 当安装A和有新版本的B和/或C时,我的应用服务器会连续重启3次,每次重启大约需要10分钟 当我们构建RPM时,有没有一种方法可以让a和B检测到它们是作为a的依赖项安装/更新的,而不是重新启动服务器

我有3个软件包,我们正在为其构建
spec
文件以安装我们的应用程序:

Package A
Package B
Package C

A depends on B
A depends on c
问题在于,这些软件包中的每一个都需要在安装前关闭应用程序服务器,并在安装后重新启动

如果您只安装B或C,这很好

当安装A和有新版本的B和/或C时,我的应用服务器会连续重启3次,每次重启大约需要10分钟


当我们构建RPM时,有没有一种方法可以让a和B检测到它们是作为a的依赖项安装/更新的,而不是重新启动服务器并让a这样做?

我不知道是否有一种本机方法可以这样做,但我过去所做的是让所有包在目标服务运行时签入
%pre
(例如,
httpd
)。如果是,则将其关闭,并使用
at
在未来的合理时间内重新启动(如两分钟)。每个RPM还检查重新启动是否已在队列中(我使用了“n”之类的随机队列),如果是,它将再运行两分钟。最终结果应该是服务器只运行一次,即在安装最终软件包后两分钟


缺点:尽管
at
是,但由于某些原因,一些机器没有安装它,所以我不得不将它添加到我的
Requires
标签中。

谢谢你的回答,我今天学到了一些新东西,这让我度过了美好的一天!