更改新创建的 RPM 的存储位置

IT_*_*ser 0 linux rpm rhel variable

对创建 RPM 还很陌生,但我已经掌握了基础知识。我正在编写基础脚本,并且有一个要求,即我不能接受将存储新创建的 RPM 的默认位置。

通常,创建的 RPM 存储在 ~/rpmbuild/RPMS 中

我需要将它们保存到 /centralStorage/Some/New/Location。

RPM 构建器正在寻找什么变量来知道将新创建的 RPM 保存在哪里?我似乎无法在文档中找到如何手动更改它。

Tho*_*key 5

这是使用_topdir宏设置的,例如,

%_topdir /home/ed/mybuild
Run Code Online (Sandbox Code Playgroud)

您可以使用相关宏对其进行微调。在 Fedora 系统上,宏在 中/usr/lib/rpm/macros,包括:

#       The directory where newly built binary packages will be written.
%_rpmdir                %{_topdir}/RPMS
Run Code Online (Sandbox Code Playgroud)

所以你可以只覆盖_rpmdir.

通常我只使用 中的设置$HOME/.rpmmacros,其他人使用命令行选项--define,例如,

rpmbuild --define '_topdir /Location/On/Storage/' -bb myNewServer.spec
Run Code Online (Sandbox Code Playgroud)

进一步阅读: