为普通用户设置 rhel 5.x RPM 构建服务器

为普通用户设置 rhel 5.x RPM 构建服务器

我的任务是设置一个 RHEL 5.x 构建主机,它可以为普通用户构建 RPM。

在 rpm 版本为 4.8 的 RHEL 6.x 上,我有/usr/lib/macros

#       Path to top of build area.
%_topdir                %{getenv:HOME}/rpmbuild

在 rpm 版本为 4.4 的 RHEL 5.x 上,%{getevn:HOME} 不可用。

我知道我可以使用/home/someuser/.rpmmacros

%_topdir                /home/someuser/rpmbuild

这对那个用户来说有效,但是我不想对每个用户单独执行此操作。此外,由于.rpmmacro不会扩展${HOME},或者~我怀疑使用这些是不安全的。这反过来会使/etc/skel这项任务不稳定(至少我怀疑如此)。

简而言之,我的问题是:如何设置 RHEL 5.x 主机以允许所有用户在其主目录中构建 RPM 包?

答案1

在我的.rpmmacrosRHEL5 上我使用

%_topdir        %(echo ${HOME}/rpm)

如果您不想设置模拟(但我也建议这样做)这可能会有所帮助。

答案2

如果可能的话,请将您的构建服务器设为 EL6。这将为您节省很多麻烦...

对于仅偶尔构建 RPM 包的简单构建框,请让您的用户使用mock。您可以在 EPEL 存储库中找到它。

使用mock构建 RPM 可确保通过在 chroot 环境中构建它来指定所有正确的构建依赖项。

添加应该能够访问mockmock组的用户。

然后这些用户可以使用以下命令构建 RPM:

mock -r epel-5-x86_64 file.src.rpm

如果你需要建立一个很多RPM,或者你正在创建一个存储库,你可能需要设置一个自动构建服务器,例如

相关内容