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


8

我正在尝试为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”。但我不确定if条件转换的语法是什么?rpmguide没有详细的答案。

Answers:



8

像往常一样,Fedora Wiki提供了有关包装的最佳指导。看一下Packaging:DistTag页面。您可以使用%{el5}变量和简写条件来确保Require在构建EL5软件包时使用relevent 行。

%{?el5:Requires: kmod-coretemp}

您可能需要将dist标签添加到版本字段中,以避免以后软件包之间的混淆:

Release: 1%{?dist}

请参阅Dist标签的用途


谢谢!好吧,由于某些原因,我的系统没有这个,但是我已经手动定义了宏。抱歉,将Ignacio的答案标记为已接受,因为这是第一个答案。
rvs

1
如果不存在,则可能需要redhat-rpm-config从Yum 安装软件包。
丹·卡利

它已安装,但仍然没有宏。我相信它是特定于centos的,就像在其他rhel5机器上一样。
rvs
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.