如何使用 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。但它有效。
进一步阅读:
我正在构建一个 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。但它有效。
进一步阅读: