首页 > 解决方案 > RPM 规范决定首先安装哪个依赖项

问题描述

我正在尝试创建一个my-main-rpm包含 10 多个依赖项(其中大部分不是我制作的)的 RPM(),但我想先安装另一个my-rpm-prerequisite我创建的 RPM()。此my-rpm-prerequisiteRPM 创建/修改一些需要在安装其他依赖项之前完成的文件。

我希望能够使用单个命令安装整个 rpm:dnf/yum/zypper install my-main-rpm它应该安装所有依赖项。但我希望该命令首先安装my-rpm-prerequisite

有什么办法可以做到这一点吗?

或者有什么方法可以在安装依赖项之前执行脚本?

标签: rpmyumrpmbuildrpm-speczypper

解决方案


Requires正如克里斯所说,这是不可能实现的。但是如果你“只”想要执行一些脚本,还有其他方法。

首先,您可以在 中指定my-rpm-prerequisite.spec

Supplements: rpm-prerequisite

这样,默认安装将安装 my-rpm-prerequisite 作为 rpm-prerequisite 的增强。

其次,您指定%pretrans脚本。它在事务开始时运行。请参阅https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#pretrans

但请注意,即使在安装基本系统时也可能会执行 %pretrans。所以系统(或chroot)上没有安装任何东西。所以应该是用Lua写的,由rpm自己解释。


推荐阅读