将 rpmbuild 目录更改为 /var/lib/jenkins/rpmbuild/

change rpmbuild directory to /var/lib/jenkins/rpmbuild/

我正在使用 jenkins 生成一个 RPM 包,尽管 SOURCE、BUILD、BUILDROOT 都存储在 /var/lib/jenkins/rpmbuild/ 下,生成后的 rpm 包被重定向到 /root/rpmbuild/RPMS,我得到错误为

error: cannot create /root/rpmbuild/RPMS/noarch: Permission denied

我尝试创建 /var/lib/jenkins/rpmbuild/RPMS/noarch 但它失败了,我也检查了我的 .rpmmacro 并在那里我将 topdir 定义为

%_topdir %(echo $HOME)/rpmbuild

.rpmmacro 的所有者和组是 jenkins

我希望 rpm 包存储在 /var/lib/jenkins/rpmbuild/RPMS/noarch/ 下,因为任务是由 jenkins 构建的,这是 jenkins 拥有的唯一目录。

回答我自己的问题,

spec 文件中有一个关键字%define,您只需要定义您希望rpm 包保存的目录或路径。如果您为每个构建使用相同的规范文件,您只需要第一次定义它。

对我来说

%define _rpmdir /root/rpmbuild/RPMS/

我改成了

%define _rpmdir /var/lib/jenkins/rpmbuild/RPMS/

开始工作