如何使用 RPM 文件中已有的脚本作为预安装或 post 安装脚本

How to use the scripts already inside the RPM file as pre-install or post-install scripts

我正在构建一个 RPM 包,用于打包各种文件,包括属性文件、配置文件、脚本、JAR 等。 现在,在编写 %pre、%post、%preun 和 %postun scritptlet 时,我需要使用我在 say scripts/ 文件夹中的一些脚本(已打包在转速)。 所以,我希望能够做这样的事情:

%pre
export scripts/important.sh
someFunctionFromImportant parameter
%post
. scripts/anotherScript.sh
someFuncFromAnotherScript parameters

现在,因为我希望能够将此 RPM 复制粘贴到任何系统上并安装它,%pre%post 脚本必须 运行。 我已经阅读了很多教程,并且仍在寻找一种方法来完成此任务。 注意:我的要求不允许我在安装 RPM 的系统上已经存在这些脚本。就像从 RPM 文件本身一样,一切都应该干净地进行,安装与预安装脚本和 post 安装脚本一起进行。

您可以使用 %post 执行此操作,但是 %pre 是 运行 只是 安装软件包之前,这意味着您的脚本尚不可用。

您可以将您的脚本打包在一个单独的 RPM 中,使其成为您要从中 运行 %pre 部分中的脚本的 RPM 的依赖项。这当然会有一个缺点,即卸载调用程序 RPM 不会删除脚本 RPM。但它有效。

进一步阅读: