如何在 rpm 规范中将 Requires 链接到 BuildRequires?

gre*_*man 4 rpm

假设我有这样的Requires条目:

Requires: a
Requires: b
Requires: c
Run Code Online (Sandbox Code Playgroud)

现在我想声明:

BuildRequires: <<Requires>>
Run Code Online (Sandbox Code Playgroud)

意思是,对于构建,我需要安装所需的一切。因此,如果我在第一部分中删除或添加某些内容,则不必再编辑第二部分,因为它将被“链接”。

问题是——如何表达这种依赖?

我知道这样的方案不适合公共包,但我要求家庭使用——我只为我和我的家人准备快速包,它们不分发。

小智 8

简单的答案是定义一个宏,它被替换到两个位置。

%define my_common_requires package-1, package-2, package-3

BuildRequires: %{my_common_requires}
Requires:      %{my_common_requires}
Run Code Online (Sandbox Code Playgroud)

这还允许您手动定义需要在两行之一中但不能同时在两行中的内容。


Mik*_* T. 5

看起来

BuildRequires:  %{requires}
Run Code Online (Sandbox Code Playgroud)

“正常工作”——至少在 RHEL6 上,RPM 的版本为 4.8.0