2014-01-28 67 views
1

我有3个包,我们正在构建spec文件与安装我们的应用程序:我可以知道下一个要安装哪些软件包吗?

Package A 
Package B 
Package C 

A depends on B 
A depends on c 

的问题是,这些软件包的安装前安装需要的应用程序服务器关闭的事情,在安装后重新启动。

这是好的,如果仅安装B或C.

安装并有B和/或C的新版本时,我结束了连续3点我的应用程序服务器的重新启动,它需要的问题像每10分钟做一次重启。

当我们构建RPM时,是否有办法让A和B检测到它们正在安装/更新为A的依赖关系,而不是重新启动服务器,并让A执行此操作?

回答

1

我不知道是否有做原生的方式,但我已经在过去所做的都包在%pre检查目标服务正在运行(例如httpd)。如果是,关闭它并使用at将其在未来合理的时间内重新启动(如两分钟)。每个RPM还检查重新启动是否已经在队列中(我使用了一个随机队列,如“n”或其他),如果是的话,它会再次出现两分钟。最终的结果应该是服务器在安装最终软件包两分钟后才出现一次。

缺点:即使atin the LSB,由于某些原因,少数机器没有安装它,所以我不得不将其添加到我的Requires标签。

+0

感谢您的回答,我今天学到了一些新东西,这让它成为美好的一天! –

相关问题