我们正在转向使用puppet进行基于Linux的系统的配置管理。我们有几个包含自定义二进制安装程序(想想JDK)的第三方软件包,并使用RPM将它们构建为仅限本地的非分布式软件包。一个麻烦的包有一个安装过程,需要以下内容: a)将Untar二进制包导入 install 目录X. b)运行“installer”,提示许可证接受,然后修改/嵌入安装目录路径到安装目录中的许多后续脚本。
我在定义spec文件以安装此软件包时遇到问题。对于初学者,在%install中我处理步骤a然后从步骤b运行安装程序。这会按预期将软件包安装到$ RPM_BUILD_ROOT中。但是,程序包脚本都嵌入了$ RPM_BUILD_ROOT /,而不是嵌入了安装目录的脚本。有没有办法运行这个安装程序,就像它在chroot环境或其他替代方案?任何帮助赞赏。
答案 0 :(得分:1)
在Fedora下(我怀疑还有RHEL / CentOS),你所描述的任务类型都有mock。它用于构建包,但“填充chroot”部分应该易于(错误地)用于创建所需的环境。