当我们使用 在 spec 文件中使用 %define 标记来使用 rpmbuild 命令构建 RPM ...是否可以在 %pre 上更新它的值并在以后使用它?
最佳答案
没有。
%define
宏总是在规范文件中从上到下重新求值,所以你不能有循环。
%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
,它会因宏循环而出错。
如果这不能回答您的问题,请详细说明您要查找的信息或您的最终目标。
预计到达时间:
%pre
和 %post
部分在构建 RPM 时已经有了硬编码的宏。如果您需要做出额外的运行时决定,则需要在这些 shell 脚本中完成。
关于linux - 将值重新分配给 spec 文件中的 %define 变量 - RPM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519844/