【问题标题】:Is it possible to write our own rpm -e option?是否可以编写我们自己的 rpm -e 选项?
【发布时间】:2019-06-27 21:54:33
【问题描述】:

我创建了一个 rpm 构建,它将作为 rpm 安装的一部分提取文件,然后运行自定义脚本来安装包。但是当我执行 rpm -e 选项时,它只会删除 rpm 提取的文件,这还不够好。如何编写 rpm -e 选项来运行我的自定义卸载脚本?

【问题讨论】:

    标签: rpm rpmbuild rpm-spec


    【解决方案1】:

    您可以编写自定义的%preun%postun scriptlet。

    话虽如此,您所做的是错误,并且没有遵循 RPM 应该做什么的理念。你让管理员几乎不可能验证系统上文件的完整性 (rpm -V),找出系统上安装文件的原因 (rpm -q --whatprovides) 等等。请重新考虑。

    【讨论】:

      【解决方案2】:

      在正常情况下,文件是作为包生命周期的副产品创建的(即日志文件、临时文件),您可以在卸载期间使用 %ghost 指令删除这些文件。见Directives For the %files list

      在您的%files 部分中,您将%ghost 拥有这些附加文件。打包不会尝试将这些文件包含在 rpm 中,但在卸载您的包时,它会识别所有权并相应地删除它们。

      %files
      %ghost /var/log/mylogfile.log
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-21
        相关资源
        最近更新 更多