我们正在切换到使用 puppet 来对基于 Linux 的系统进行配置管理。我们有几个包含自定义二进制安装程序(想想 JDK)的第三方包,并且正在使用 RPM 将它们构建到仅限本地的非分布式包中。一个麻烦的包有一个安装过程,它需要以下内容:a)将二进制包解压到安装目录 X。b)运行“安装程序”,提示接受许可证,然后将安装目录路径修改/嵌入到安装目录中的许多后续脚本中.
我在定义一个规范文件来安装这个包时遇到问题。对于初学者,在 %install 中我处理步骤 a,然后从步骤 b 运行安装程序。这会按预期将包安装到 $RPM_BUILD_ROOT 中。然而,包脚本都嵌入了 $RPM_BUILD_ROOT/ 而不仅仅是破坏了嵌入安装目录的脚本。有没有办法像在 chroot 环境或其他替代环境中一样运行此安装程序?任何帮助表示赞赏。