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

时间:2014-02-17 12:52:33

标签: ubuntu packaging deb dpkg debhelper

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

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

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

他们将被删除。

更新 我将使用

删除postrm.debhelper脚本中的文件夹
  

rm -rf文件夹

但感觉不对。 ;)

1 个答案:

答案 0 :(得分:3)

首先,我会说这听起来像是一个包有点不正确的行为,删除安装前存在的卸载文件,我强烈建议不要在包中使用的任何类型的东西。普通大众。但是,如果它是供私人使用的,并且相关人员了解它的作用,那应该没问题。

删除prerm或postrm中的文件听起来像是最好的答案。但请确保您无条件执行rm; prerm和postrm可以在除总包去除之外的几种情况下调用。

postrm优于prerm,除非你想完全确定在之前删除文件,否则将从文件系统中删除包的内容。

在一个帖子中,我建议做一些像

这样的事情
case "$1" in
    purge|disappear)
        rm -rf $your_folder
esac

您可以将remove添加到purgedisappear,如果您希望删除文件,即使包裹已被删除&#34;而不是&#34;清除&#34; (&#34;删除&#34;表示将保留软件包的配置文件;这通常意味着稍后可能再次安装软件包。)

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