簡體   English   中英

rpm 條件依賴要求

[英]rpm conditional dependency requirements

我現在正在開發一個需要在較新版本的 Redhat 上運行的軟件。 它目前在 6 和 7 上運行良好,但現在需要在 Redhat 8 上安裝和運行。

軟件中沒有任何具體內容可以阻止它在較新的操作系統版本上運行,但我在依賴項要求方面遇到了問題。 運行軟件的腳本需要訪問 semanage (/usr/sbin/semanage)。 在 Redhat 6 和 7 上,這是由 policycoreutils-python 包提供的,並在構建 rpm 時作為需求參數給出。 從 Redhat 8 開始,該包已重命名為 policycoreutils-python-utils(請參閱此鏈接,第 8.6.2 節)。

從 rpm 4.13 開始,支持布爾依賴項(請參閱此處),這將使其成為一個簡單的修復程序,因為我可以執行諸如-R (policycoreutils-python or policycoreutils-python-utils)但是從其更改 rpm-build 包當前的 4.8 版本是一個主要的痛苦,因為它被另一個團隊用於另一個軟件。 我還需要將它保持為獨立於發行版的 rpm,因此不能為較新版本的操作系統使用不同版本的 rpm。

所以,我的問題:

1) 是否有其他方法可以在較舊的 rpm 4.8 版本的規范文件中設置條件要求?

2) 如果我要獲得將 rpm 升級到最新 4.15 的批准,在安裝了較舊 rpm 的目標系統上是否可能存在任何問題,例如不理解條件?

更新:rpm 將在 RH 6 機器上構建一次,應該適用於 RH 7 和 8。

如果您為所有平台構建一個 rpm

您可以依賴semanage本身:

Requires: /usr/sbin/semanage

yumdnfrpm應該足夠聰明來解決這個問題。

如果您在相應的目標上構建每個 rpm:

您可以使用%rhel_version宏,請參閱https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto

%if 0%{?rhel_version} < 800
Requires: policycoreutils-python
%else
Requires: policycoreutils-python-utils
%endif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM