当我们在规范文件中使用 %define 标记定义变量以使用 rpmbuild 命令构建 RPM 时……是否可以在 %pre 上更新其值并稍后使用它?
问问题
9870 次
1 回答
6
不。
%define
宏总是在规范文件中从上到下重新评估,所以你不能有循环。
%global
宏是一次性的。
例如,来自另一个关于“需要”处理的问题:
%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
,它会因宏循环而出错。
如果这不能回答您的问题,请详细说明您要查找的信息或您的最终目标。
预计到达时间:
从构建 RPM 时起,%pre
and%post
部分就已经包含了硬编码的宏。如果您需要做出额外的运行时决策,则需要在这些 shell 脚本中完成。
于 2013-01-26T16:05:58.690 回答