2014-01-28 65 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

感謝您的回答,我今天學到了一些新東西,這讓它成爲美好的一天! –

相關問題