2014-05-05 11 views
1

我有一個驅動程序軟件包B,我想在啓動時將其作爲依賴項引入一個安裝程序包A的構建計劃。A的唯一目的是充當一個包裝程序包,該程序包抽取系統工作所需的所有程序包,作爲依賴項。如果在預安裝腳本中沒有滿足某些條件,請不要完成資源複製事務,但將該程序包標記爲安裝在rpmdb中

如果驅動程序B是H/W平臺,它應該只將自身安裝在系統上,否則它應該只將自己標記爲安裝在數據庫中,而不是真正完成安裝。問題是,如果沒有安裝B,那麼依賴於B的軟件包A也將無法安裝,因此完整的構建計劃將失敗。

並且can包可以基於某些條件具有動態依賴關係嗎?因爲如果滿足某些條件,我可以將該邏輯移動到程序包A以指定B作爲其依賴項。

回答

1

我不相信你可以做你想做的事(至少不是直接)。

最接近你可能得到的是讓包B安裝驅動程序文件/等的壓縮包。然後檢查(在%post或類似中)該平臺是否合適,並且只有在該情況下才提取。這就是說我根本不推薦這個路徑(如果你確實想這樣做,我相信你會想把所有這些文件標記爲%ghost文件,這樣RPM至少可以知道它們)。

我早點建議,如果驅動程序在非H/W平臺上(或者可以做成)無害,您只需讓它們安裝並忽略它。或者,可以使用B程序包中的「虛擬」Provides作爲A程序包中的要求,並創建B的第二個版本,該程序不包含文件(僅限於Provides),然後根據需要使用多個安裝存儲庫。

RPM依賴關係存儲在包頭中,並且不支持幾乎與條件斷言一樣複雜的事情(至少我知道這一點)。

相關問題