我有一个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
添加到purge
和disappear
("删除"意味着包的配置文件将被保留;这通常意味着以后有机会再次安装包)。
在正常程序包升级时,或者在升级或初始安装失败时(操作upgrade
、failed-upgrade
、abort-install
和abort-upgrade
),也会调用postrm。有关如何以及何时使用这些策略的详细描述,请参阅Debian Policy。在这种情况下,您几乎肯定不想执行rm
。