为离线安装提供 RPM 依赖
Provide dependencies of RPM for offline install
我制作了一个 RPM,它将安装在气隙 PC 上(它将通过 CD 和 USB 分发)。它需要某些第三方软件包的版本比某些机器上当前安装的版本更新。
我需要最终用户可以安装它,我不想给他们提供说明,这些说明列出了许多他们必须按特定顺序手动安装的 RPM。
有什么方法可以将这些第三方 RPM 放在 CD/USB 上的子文件夹中,并使该位置对依赖项解析器可见?我可以在 .spec 文件的 %pre 步骤中创建本地存储库并在 %post 中删除它吗?
你不能做你在 %pre
和 %post
中要求的事情,因为 (a) 这些是在安装时执行的,这在依赖项解析之后很好,并且 (b) 你不会无法调用 rpm
从您的 %pre
安装东西,因为数据库已针对您参与的事务锁定。
当我过去做过类似的事情时,我发现最简单的做法是将所有 RPM 放在媒体上的一个目录中,并指示部署团队 yum localinstall *rpm
从那个目录。如果某些 third-party RPM 比安装的版本旧,它将跳过它们。
我制作了一个 RPM,它将安装在气隙 PC 上(它将通过 CD 和 USB 分发)。它需要某些第三方软件包的版本比某些机器上当前安装的版本更新。
我需要最终用户可以安装它,我不想给他们提供说明,这些说明列出了许多他们必须按特定顺序手动安装的 RPM。
有什么方法可以将这些第三方 RPM 放在 CD/USB 上的子文件夹中,并使该位置对依赖项解析器可见?我可以在 .spec 文件的 %pre 步骤中创建本地存储库并在 %post 中删除它吗?
你不能做你在 %pre
和 %post
中要求的事情,因为 (a) 这些是在安装时执行的,这在依赖项解析之后很好,并且 (b) 你不会无法调用 rpm
从您的 %pre
安装东西,因为数据库已针对您参与的事务锁定。
当我过去做过类似的事情时,我发现最简单的做法是将所有 RPM 放在媒体上的一个目录中,并指示部署团队 yum localinstall *rpm
从那个目录。如果某些 third-party RPM 比安装的版本旧,它将跳过它们。