将值重新分配给spec文件中的%define变量 - RPM

时间:2013-01-25 10:26:17

标签: linux rpm specifications

当我们使用the定义变量时 %使用rpmbuild命令在spec文件中定义标记以构建RPM ...是否可以在%pre上更新其值并稍后使用它?

1 个答案:

答案 0 :(得分:6)

没有

%define宏总是在spec文件中从上到下重新评估,因此你不能有循环。

%global宏是一次性的。

示例,来自another question concerning 'requires' processing

%global _use_internal_dependency_generator 0
%global __find_requires_orig %{__find_requires}
%define __find_requires %{_builddir}/%{?buildsubdir}/build/find-requires %{__find_requires_orig}

如果我使用%define来声明__find_requires_orig,则会出现宏循环错误。

如果这不能回答您的问题,请详细说明您要查找的信息或最终目标。


ETA:

%pre%post部分已经具有从构建RPM时硬编码的宏。如果您需要做出额外的运行时决策,则需要在这些shell脚本中完成它们。