我的任务是设置一个 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
这项任务变得不稳定(或者我怀疑)。
所以简而言之,我的问题是:如何设置允许所有用户在其主目录中构建 RPM 包的 RHEL 5.x 主机?
如果可能的话,将构建服务器设为 EL6。这将为您以后省去很多麻烦......
对于只构建偶尔的 RPM 包的简单构建框,让您的用户使用
mock
. 您可以在 EPEL 存储库中找到它。使用
mock
构建 RPM 可确保通过在 chroot 环境中构建它来指定所有正确的构建依赖项。添加应该能够访问
mock
该mock
组的用户。然后这些用户可以使用如下命令构建 RPM:
如果您需要构建大量RPM,或者您正在创建一个存储库,您可能希望使用类似koji的东西设置一个自动构建服务器。
在我
.rpmmacros
的 RHEL5 上我使用如果您不想设置模拟(但我也建议这样做),这可能会有所帮助。