rpm 规范:基于发行版的条件要求

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 没有详细答案。

答案1

答案2

与往常一样,Fedora wiki 提供了有关打包的最佳指南。请查看包装:DistTag页面。您可以使用%{el5}变量和简写条件来确保Require在为 EL5 构建包时使用相关行。

%{?el5:Requires: kmod-coretemp}

您可能需要将dist标签添加到版本字段以避免以后包之间发生混淆:

Release: 1%{?dist}

Dist 标签的用途

相关内容