当前,为RPM编写一个*.spec文件。如何动态定义变量,以便它们使用参数化宏?
根据rpm文档,我想出了以下内容:
1 %define postgresql_macro() (?%1?%2?%3?%4?%5)
2 %define postgresql_ver %postgresql_macro 9 . 4 . 15
3 %define postgresql_ver_short %postgresql_macro 9 . 4 .
4 %define postgresql_ver_major 9 4第1行是接受参数的宏。
第2行应该将postgresql_ver定义为9.4.15。
LIne 3应该将postgresql_ver_short定义为9.4。
第4行应该将postgresql_ver_major定义为94。
我怎么测试这个?这是正确的吗?
发布于 2018-01-11 09:38:10
首先,你错了。它应该是:
%define postgresql_macro() %1%2%3%4%5
%define postgresql_ver %postgresql_macro 9 . 4 . 15
%define postgresql_ver_short %postgresql_macro 9 . 4 .
%define postgresql_ver_major 9 4你可以这样测试。放入您的规范文件:
%prep
%define postgresql_macro() %1%2%3%4%5
%define postgresql_ver %postgresql_macro 9 . 4 . 15
%define postgresql_ver_short %postgresql_macro 9 . 4 .
%define postgresql_ver_major 9 4
echo %{postgresql_ver}现在运行rpmbuild -bp your.spec。这应该打印:9.4.15
https://stackoverflow.com/questions/48192769
复制相似问题