将 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/
开始工作
我正在使用 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/
开始工作