Centos 如何更改RPM';使用rpmbuild时的目标

Centos 如何更改RPM';使用rpmbuild时的目标,centos,redhat,rpm,rpmbuild,rpm-spec,Centos,Redhat,Rpm,Rpmbuild,Rpm Spec,我正在从目录foo中的spec文件构建rpmbuild的RPM,但每当我运行rpmbuild时,它会在我家目录中的~/rpmbuild/RPMS创建RPM 如何更改RPM的目标并使整个rpmbuild目录位于foo?我尝试将Buildroot设置为foo,但这只是更改了生成临时文件的位置,而不是最终rpm。任何帮助都将不胜感激。谢谢 最大转速手册(有时确实过时)中的信息仍然是最新的。您需要设置\u topdir值来移动整个目录树: 除了更改~/.rpmmacros,您还可以使用-D\u t

我正在从目录
foo
中的spec文件构建rpmbuild的RPM,但每当我运行rpmbuild时,它会在我家目录中的
~/rpmbuild/RPMS
创建RPM

如何更改RPM的目标并使整个rpmbuild目录位于
foo
?我尝试将
Buildroot
设置为
foo
,但这只是更改了生成临时文件的位置,而不是最终rpm。任何帮助都将不胜感激。谢谢

最大转速手册(有时确实过时)中的信息仍然是最新的。您需要设置
\u topdir
值来移动整个目录树:

除了更改
~/.rpmmacros
,您还可以使用
-D\u topdir/path/to/alternate/location
切换目录树的位置


如果要移动特定子目录,请参阅并搜索其他RPM宏名称的
topdir
参考。请注意,由于某些原因,所有这些变量名称中缺少前导下划线。

作为上述答案的替代方法,在spec文件本身中设置输出目录
%define\u rpmdir/path/to/outputdir
对我有效。

我更喜欢
--define“\u topdir/x/x”
这样下一个编辑调用脚本的人就不必猜测
-D
。在这个答案的例子中,任何地方都没有。