我正在尝试制定RPM的构建过程。
当我生成源RPM时,它在文件名中包含%{dist}
。我希望它只对二进制RPM执行此操作,因为源RPM不是特定于分发的。
dist
宏定义在/etc/rpm/macros.dist
中。在构建源RPM时,我将如何取消它?
foo.spec:
Name: foo
Version: 0.1
Release: 1%{?dist}
# etc...
构建命令:
$ rpmbuild -bs foo.spec
$ ls ../SRPMS
$ foo-0.1-1.el6.src.rpm
答案 0 :(得分:2)
简单:
$ rpmbuild --undefine dist -bs foo.spec
答案 1 :(得分:0)
我不相信有一种方法可以有条件地检查您正在构建什么类型的包,但是您可以尝试仅在构建源包时在命令行定义宏。然后,您将有条件地检查spec文件顶部的宏:
$ rpmbuild -bs --define "mymacro 1" mypackage.spec
mypackage.spec:
%if 0%{?mymacro}
%undefine dist
%endif
要构建二进制包,只需省略--define "mymacro 1"
:
$ rpmbuild -bb mypackage.spec