我有一个 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
,如果您希望即使在“删除”而不是“清除”包时也删除文件(“删除”意味着将保留包的配置文件;这通常意味着包的机会稍后再次安装)。
postrm 也将在正常的包升级时调用,或者当升级或初始安装失败时(操作、、、upgrade
和failed-upgrade
)。请参阅 Debian 政策以获取有关如何以及何时使用它们的详细说明。在这些情况下,您几乎绝对不想执行。abort-install
abort-upgrade
rm