是否可以编写我们自己的 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