如何在安装包之前将 yum/dnf 变量注入 Mock

如何在安装包之前将 yum/dnf 变量注入 Mock

上下文:我有一个在 Artifactory 内构建的 yum/dnf 存储库(目前支持 RHEL7 和 RHEL8,因此我们需要同时使用两者,尽管它不应该产生影响)。该团队使用通用 .repo 文件,然后使用 yum/dnf 变量文件 (/etc/yum/vars) 来填充身份验证详细信息。一般来说,这没有问题,但我在使用 Mock 进行身份验证时遇到了问题。

可以在模拟 chroot 中绑定 mount /etc/yum/vars,并且如果您进入 chroot,它就会显示...但直到yum/dnf 安装周期,因此没有及时从自定义存储库安装 srpm 构建依赖项。

有没有某种方法可以在进程的早期进行绑定挂载,或者以另一种方式将 yum 变量注入到模拟进程中,以便它们可用于存储库身份验证?可以通过直接将身份验证详细信息放入 /etc/mock 中的模拟配置文件来使其工作,但我们试图避免这种情况,以便模拟文件(分布在开发人员工具 RPM 内)不会获取在版本更新之间发生变化,因此每次更新时都需要重新输入身份验证详细信息。

或者,除了将身份验证硬编码到模拟和存储库文件中以注入该数据之外,我还准备采用任何其他方式。这就是最终目标 - 让 repo 身份验证在 mock 和 dnf/yum 中工作,同时能够在开发人员 RPM 中分发通用 .mock 和 .repo 文件。

答案1

啊哈,想到一个办法了!

您可以在 ~/.config/mock.cfg 中为 jinja2 模板替换设置用户特定的变量

将行 config_opts['key_variable_name'] 和 config_opts['user_variable_name'] 添加到该用户文件(假设用户已经在模拟组中),然后在 .mock 或模拟模板文件中,让存储库使用 username/password={{键/用户变量名}}

相关内容