我正在构build我自己的debian软件包的新版本,有些东西已经改变,现在应该删除一些文件(例如旧的新贵脚本,不应该执行更多)。 我只是从debian包中删除这些文件,看起来像他们在生成的deb文件中缺less。 另外,如果我在一个干净的机器上安装新版本,一切都很好,但是当我升级extising安装时,删除的文件仍然存在于包文件所拥有的列表中: dpkg -L <package name> (或在/var/lib/dpkg/info/<package-name>.list这显然是一样的东西)。
所以我的问题是:我应该如何正确删除这些文件?
答案是,当涉及到conffiles包的用户是打算解决cruft自己的清理。
我不确定从Debian打包策略的angular度来看具体情况,但是如果您需要在升级中删除,重定位或修改一个conffile,则可以使用各种preinst / postinst钩子脚本之一来处理它。 我知道我已经看到这在一定程度上做了现有的软件包。
这是一个来自grub postinst /var/lib/dpkg/info/grub-common.postinst脚本的例子。 调用dpkg-maintscript-helper rm_conffile将在某些条件下删除configuration。
#!/bin/sh set -e # Automatically added by dh_installdeb dpkg-maintscript-helper rm_conffile /etc/grub.d/10_freebsd 2.00-14~ -- "$@" # End automatically added section # Automatically added by dh_installdeb dpkg-maintscript-helper rm_conffile /etc/grub.d/10_hurd 2.00-14~ -- "$@" # End automatically added section