使用自己的更新机制卸载Debian包后的剩余文件



我有一个Debian包,它必须更新一些文件。这些文件将在Debian软件包卸载后存在。当我调用apt-get-remove时,我想将它们与我的包一起删除。

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

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

它们将被移除。

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

rm-rf文件夹

但感觉不对。;)

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

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

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

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

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

如果您希望文件在包被"删除"而不是"清除"时被删除,您可以在那里将remove添加到purgedisappear("删除"意味着包的配置文件将被保留;这通常意味着以后有机会再次安装包)。

在正常程序包升级时,或者在升级或初始安装失败时(操作upgradefailed-upgradeabort-installabort-upgrade),也会调用postrm。有关如何以及何时使用这些策略的详细描述,请参阅Debian Policy。在这种情况下,您几乎肯定不想执行rm

最新更新