Linux 从第三方二进制软件包构建RPM

Linux 从第三方二进制软件包构建RPM,linux,rpm,puppet,Linux,Rpm,Puppet,我们正转向使用puppet来管理基于Linux的系统的配置。我们有几个第三方软件包,其中包含自定义二进制安装程序(比如JDK),并使用RPM将它们构建到仅本地的非分布式软件包中。一个有问题的软件包的安装过程需要以下步骤: a) 将二进制软件包解压到安装目录X中。 b) 运行“installer”,提示接受许可证,然后将安装目录路径修改/嵌入到安装目录中的许多后续脚本中 我在定义安装此软件包的规范文件时遇到问题。对于初学者,在%install中,我处理步骤a,然后从步骤b运行安装程序。这将按预期将

我们正转向使用puppet来管理基于Linux的系统的配置。我们有几个第三方软件包,其中包含自定义二进制安装程序(比如JDK),并使用RPM将它们构建到仅本地的非分布式软件包中。一个有问题的软件包的安装过程需要以下步骤: a) 将二进制软件包解压到安装目录X中。 b) 运行“installer”,提示接受许可证,然后将安装目录路径修改/嵌入到安装目录中的许多后续脚本中


我在定义安装此软件包的规范文件时遇到问题。对于初学者,在%install中,我处理步骤a,然后从步骤b运行安装程序。这将按预期将包安装到$RPM\u BUILD\u ROOT中。但是,包脚本都嵌入了$RPM\u BUILD\u ROOT/,而不仅仅是它破坏了嵌入在安装目录中的脚本。有没有一种方法可以像在chroot环境或其他替代环境中一样运行此安装程序?谢谢你的帮助

在Fedora(我猜也是RHEL/CentOS)下,您描述的任务类型正是这样的。它用于构建软件包,但“填充chroot”部分应易于(mis)使用,以创建您所需的环境。

可能就是您要寻找的。@AaronD.Marasco,谢谢,马赫看起来是个不错的前景。我们仅限于标准的CentOs yum存储库,我在那里没有看到它,但我可能可以绕过它。我会给你道具,但我的名声不允许;-)。