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

Bas*_*wer 3 linux specifications rpm

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

Aar*_*sco 6

没有.

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

%global 宏是一次性的.

例如,关于"需要"处理的另一个问题:

%global _use_internal_dependency_generator 0
%global __find_requires_orig %{__find_requires}
%define __find_requires %{_builddir}/%{?buildsubdir}/build/find-requires %{__find_requires_orig}
Run Code Online (Sandbox Code Playgroud)

如果我曾经%define声明过__find_requires_orig,那么宏循环就会出错.

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


ETA:

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