是否可以编写我们自己的 rpm -e 选项?
Is it possible to write our own rpm -e option?
我创建了一个 rpm 构建,它将提取文件作为 rpm 安装的一部分,然后 运行 自定义脚本来安装包。但是当我执行 rpm -e 选项时,它只会删除 rpm 提取的文件,这还不够好。如何将 rpm -e 选项写入 运行 我的自定义卸载脚本?
您可以编写自定义 %preun
或 %postun
脚本。
话虽如此,您所做的 是错误的 并且没有遵循 RPM 应该做的事情的理念。你几乎不可能让管理员验证系统上文件的完整性 (rpm -V
),找出系统上安装文件的原因 (rpm -q --whatprovides
),等等 请重新考虑。
在正常情况下,文件是作为包生命周期的副产品创建的(即日志文件、临时文件),您可以在卸载期间使用 %ghost
指令删除这些文件。参见 Directives For the %files list。
在您的 %files
部分中,您将 %ghost
拥有这些附加文件。 Packaging 不会尝试将这些文件包含在 rpm 中,但在卸载您的包时,它会识别所有权并相应地删除它们。
%files
%ghost /var/log/mylogfile.log
我创建了一个 rpm 构建,它将提取文件作为 rpm 安装的一部分,然后 运行 自定义脚本来安装包。但是当我执行 rpm -e 选项时,它只会删除 rpm 提取的文件,这还不够好。如何将 rpm -e 选项写入 运行 我的自定义卸载脚本?
您可以编写自定义 %preun
或 %postun
脚本。
话虽如此,您所做的 是错误的 并且没有遵循 RPM 应该做的事情的理念。你几乎不可能让管理员验证系统上文件的完整性 (rpm -V
),找出系统上安装文件的原因 (rpm -q --whatprovides
),等等 请重新考虑。
在正常情况下,文件是作为包生命周期的副产品创建的(即日志文件、临时文件),您可以在卸载期间使用 %ghost
指令删除这些文件。参见 Directives For the %files list。
在您的 %files
部分中,您将 %ghost
拥有这些附加文件。 Packaging 不会尝试将这些文件包含在 rpm 中,但在卸载您的包时,它会识别所有权并相应地删除它们。
%files
%ghost /var/log/mylogfile.log