我已经创建了一个rpm构建,它将在rpm安装过程中提取文件,然后运行自定义脚本来安装软件包。但是当我执行rpm -e选项时,它将仅删除rpm提取的文件,这不够好。如何编写rpm -e选项以运行自定义卸载脚本?
答案 0 :(得分:0)
您可以编写自定义的%preun
或%postun
脚本。
话虽如此,您在做什么是错误,而不是遵循RPM应该做什么的哲学。您几乎使管理员几乎无法验证系统上文件(rpm -V
)的完整性,找出在系统上安装文件的文件(rpm -q --whatprovides
)等等。请重新考虑。
答案 1 :(得分:0)
在正常情况下,文件是软件包生命周期的副产品(即日志文件,临时文件),在卸载期间,您可以使用%ghost
指令删除这些文件。参见Directives For the %files list。
在您的%files
部分中,您将%ghost
拥有这些其他文件。打包程序不会尝试将这些文件包含在rpm中,但是在卸载程序包时,它将识别所有权并相应地将其删除。
%files
%ghost /var/log/mylogfile.log