我已经制作了一个RPM,它将安装在气隙式PC上(它将通过CD和USB分发)。它需要某些第三方软件包的较新版本,而不是某些机器上当前安装的软件。
我需要最终用户可以安装此文件,我不想给他们提供说明,列出他们必须按特定顺序手动安装的许多RPM。
有什么方法可以将这些第三方RPM放在CD / USB上的子文件夹中,并使该位置对依赖项解析器可见?我可以在.spec文件的%pre步骤中创建一个本地仓库,并在%post中删除它吗?
答案 0 :(得分:1)
您无法在%pre
和%post
中执行您所要求的操作,因为(a)这些是在安装时执行的,这是在依赖关系解决之后执行的,(b)您将无法调用rpm
来安装%pre
中的内容,因为数据库已为您所属的交易锁定。
当我过去做过类似的事情时,我发现最简单的方法是将所有RPM放在媒体上的单个目录中,并指示部署团队从yum localinstall *rpm
开始那个目录。如果某些第三方RPM比安装的更早,它只会跳过它们。