2016-02-17 54 views
0

大家下午好,Rpm-spec文件。運行yum groupinstall

我目前正在建立一個RPM,有一些要求我還沒有在網上找到答案。我把這個縮小到了一個單一的問題。

通常,當我從命令行運行安裝時,其中一個步驟是運行以下命令yum groupinstall "Compatibility libraries",它在我的64位桌面上安裝32位兼容性庫。我想知道是否有辦法在我的RPM-spec文件的Requires:字段中完成此操作,因爲我只找到了一種方法來要求非常特定的RPM for dependencies?

我總是可以添加10到15個獨立軟件包,與yum groupinstall "Compatibility Libraries"一起安裝,但我希望有更好的選擇。

RPM的描述: 我的RPM本質上是非常基本的。它會將多個tar文件解壓到不同的位置,覆蓋整個主安裝目錄中的文件,安裝兼容庫,然後繼續啓動服務。

如果有人需要更多的信息,我想完成請讓我知道。謝謝。

回答

1

您只能在Requires:行中要求特定的程序包,而不要求組。您應該絕對不要在%post腳本中運行yum,因爲(a)您隱藏了您的依賴關係,並且沒有人喜歡看到他們沒有預料到的事情,(b)您可能最終陷入困境,因爲yum%post需要等待現有的yum進程退出。

對於Requires:,rpm構建過程通常會爲您解決問題。您仍然需要手動指定相應的BuildRequires:依賴關係,這是構建所需的包。

如果您想更新您的問題並提供更多詳細信息(例如,指向spec文件的鏈接以及您要做什麼的描述,如果從規範中不明顯),也許我們可以拿出解決方案更好

+0

嗯,你寫的東西幾乎鞏固了我的知識。從我收集的信息來看,最好在我的RPM中包含一個'%pre'節,它將安裝「兼容性庫」。你提到'%post'中的'yum'可能會等到第一個yum。有沒有辦法克服這一點,你可以想到的? – bluerojo

+0

爲了澄清,我的RPM會放下一對tar文件,安裝compat庫,然後啓動幾個進程。我無法發佈我的規格文件。我可以完成一切,但通過此rpm已安裝我的兼容性庫 – bluerojo

+0

如果我可以在規範文件的「需求:」部分中安裝「兼容性庫」,這將完美工作。 – bluerojo