Redhat

rpm 規範:基於發行版的條件要求

  • October 15, 2019

我正在嘗試為 RHEL/CentOS/SL 5 和 6 編寫單個 rpm 規範。此規範適用於 python 應用程序,因此建構過程沒有差異。但在 RHEL/CentOS5 上,我需要添加一個額外的依賴項。

我將如何僅為 el5 定義依賴關係?我試過以下:

%if 0%{?redhat} == 5 || 0%{?centos} == 5
Requires:   kmod-coretemp
%endif

不起作用(在 CentOS5 上建構不會添加 kmod-coretemp 依賴項)。

我也試過以下:

%if %{?dist} == "el5"

它報告語法錯誤。我確定 dist 宏已設置並包含“el5”。但我不確定 rpm 中 if 條件的語法是什麼?rpmguide 沒有詳細的答案。

Dist 標籤包裝指南。

像往常一樣,Fedora wiki 提供了關於打包的最佳指南。查看Packaging:DistTag頁面。您可以使用%{el5}變數和簡寫條件來確保在Require為 EL5 建構包時使用相關行。

%{?el5:Requires: kmod-coretemp}

您可能希望將dist標籤添加到版本欄位以避免以後在包之間混淆:

Release: 1%{?dist}

請參閱Dist 標記的用途

引用自:https://serverfault.com/questions/283330