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

How to change RPM's destination when using rpmbuild

我正在使用 rpmbuild 从目录 foo 中的规范文件构建 RPM,但每当我 运行 rpmbuild 时,它都会在我的主目录 ~/rpmbuild/RPMS 中创建 rpm。

如何更改 RPM 的目标并将整个 rpmbuild 目录放在 foo 中?我尝试将 Buildroot 设置为 foo 但这只是改变了构建构建临时文件的位置,而不是最终的 rpm。任何帮助,将不胜感激。谢谢!

Maximum RPM 手册(有时确实过时)中的信息仍然是最新的。您需要设置 _topdir 值才能移动整个目录树:

除了改变~/.rpmmacros,您还可以使用-D _topdir /path/to/alternate/location来切换目录树的位置。

如果您想移动特定的子目录,请参阅 rpmrc File Entries 并搜索 topdir 其他 RPM 宏名称的参考资料。请注意,出于某种原因,所有这些变量名称中都缺少前导下划线 _

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