Redhat
rpm 規範:基於發行版的條件要求
我正在嘗試為 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 沒有詳細的答案。
像往常一樣,Fedora wiki 提供了關於打包的最佳指南。查看Packaging:DistTag頁面。您可以使用
%{el5}
變數和簡寫條件來確保在Require
為 EL5 建構包時使用相關行。%{?el5:Requires: kmod-coretemp}
您可能希望將
dist
標籤添加到版本欄位以避免以後在包之間混淆:Release: 1%{?dist}
請參閱Dist 標記的用途。