将多个rpm打包成一个文件

10

是否可以将多个rpm打包成一个文件?我有两个软件包,其中一个需要安装另一个软件包。我想要创建一个可安装的单一软件包,以便这个安装程序先调用pkg1,然后再安装pkg2。这可能吗?.deb软件包呢?如果问题比较基础,那我很抱歉,因为我之前没有在Linux上使用过安装程序,我只是在Windows上创建了安装程序。在Windows上,你可以创建两个合并模块(.msm)并将它们打包到一个独立的安装程序(.msi)中,并指定执行顺序。我正在寻找类似的Linux功能。

编辑:我觉得问题没有表述清楚,让我试着重新表述一下。我有一堆运行库,目前被打包成单独的安装程序进行发布。另一个团队开发的产品在运行时使用这些库。现在,我想以某种形式(子软件包)向产品团队提供这些库,使得他们可以将其与自己的安装程序一起安装,并将其配置为首先安装我的子软件包。这两个软件包应该都可以在本地使用。它们不在任何存储库中,并且不能在安装时从网络中下载。


好问题,但是答案不够好。等待更好的答案! - mosg
2个回答

4
尝试将它们打包成自解压缩的bash脚本。您不需要修改或聚合库和rpms在一起。这应该产生一个可执行文件,可以包含在另一个安装过程中。提取的最后一步应该是使用rpm文件作为参数调用"rpm -i"。建立自解压缩bash脚本的参考资料: http://www.linuxjournal.com/node/1005818

这并不能达到我认为 OP 所期望的相同目的:让下载单个文件的用户受到一个软件“商店”应用程序的欢迎,以便一键安装。大多数系统(可以理解)要求用户在允许执行之前对 shell 脚本进行 chmod +x,从而破坏了 RPM 包文件提供的“一键安装”用户体验。 - Apteryx

0

首先,您不需要重新打包任何东西,尤其是如果您的应用程序使用了一些外部库。您只需在您的配方中提及您的RPM(或DEB)依赖于其他的库。无论是apt-get(适用于deb)还是yum(适用于rpm),都会检查这些依赖项并在需要时安装它们。

请参阅: http://rpm5.org/docs/api/dependencies.html(rpm)和 http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/ (deb)

(这些只是我找到的其中几个资源,您可以在其他地方找到更好的资源 :p)。


如果您的应用程序被分成多个相互依赖的组件(并来自同一个外部存储库),则不能简单地在规范文件中要求它们。您需要将它们合并到一个单独的规范文件中,以实现类似于 Google Chrome 和其他应用的“一键安装”。 - Apteryx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接