代码之家  ›  专栏  ›  技术社区  ›  imizeropt

Debian软件包卸载后的遗留文件,具有自己的更新机制

  •  2
  • imizeropt  · 技术社区  · 10 年前

    我有一个Debian包,需要更新一些文件。这些文件将在Debian软件包卸载后存在。当我打电话时,我想把它们和我的包裹一起拿走 移除套件 .

    如果我将更新的文件添加到

    /var/lib/dpkg/info/<package>.list
    

    它们将被移除。

    更新: 我将使用删除postrm.debhelper脚本中的文件夹

    rm-rf文件夹

    但感觉不对劲。;)

    1 回复  |  直到 10 年前
        1
  •  3
  •   the paul    10 年前

    首先,我想说,对于一个包来说,这听起来有点不恰当,在卸载时删除安装之前就存在的文件,我强烈建议不要在一个供公众使用的包中做任何类似的事情。然而,如果它是私人使用的,并且相关人员了解它的作用,它应该是可以的。

    删除prerm或postrm中的文件听起来是最好的答案。但一定不要执行 rm 无条件;prerm和postrm可以在几种情况下调用,而不是完全删除包。

    postrm比prerm更好,除非您想完全确保文件将被删除 之前 包自己的内容将从文件系统中删除。

    在postrm中,我建议做一些类似的事情

    case "$1" in
        purge|disappear)
            rm -rf $your_folder
    esac
    

    您可以添加 remove purge disappear 在这里,如果您希望在包被“删除”而不是“清除”时删除文件(“删除”意味着包的配置文件将被保留;这通常意味着包稍后可能会再次安装)。

    在正常的包升级时,或者在升级或初始安装失败时,也会调用postrm(操作 upgrade , failed-upgrade , abort-install abort-upgrade ). 请参阅Debian Policy,了解如何以及何时使用这些策略的详细说明。您几乎肯定不想执行 rm公司 在这些情况下。

    推荐文章