提供RPM的依赖关系以进行离线安装

时间:2016-01-14 08:51:22

标签: dependencies rpm rpmbuild

我已经制作了一个RPM,它将安装在气隙式PC上(它将通过CD和USB分发)。它需要某些第三方软件包的较新版本,而不是某些机器上当前安装的软件。

我需要最终用户可以安装此文件,我不想给他们提供说明,列出他们必须按特定顺序手动安装的许多RPM。

有什么方法可以将这些第三方RPM放在CD / USB上的子文件夹中,并使该位置对依赖项解析器可见?我可以在.spec文件的%pre步骤中创建一个本地仓库,并在%post中删除它吗?

1 个答案:

答案 0 :(得分:1)

您无法在%pre%post中执行您所要求的操作,因为(a)这些是在安装时执行的,这是在依赖关系解决之后执行的,(b)您将无法调用rpm来安装%pre中的内容,因为数据库已为您所属的交易锁定。

当我过去做过类似的事情时,我发现最简单的方法是将所有RPM放在媒体上的单个目录中,并指示部署团队从yum localinstall *rpm开始那个目录。如果某些第三方RPM比安装的更早,它只会跳过它们。