Debian

如何從新版本的軟體包中刪除不推薦使用的文件?

  • September 15, 2016

我正在建構我自己的 debian 軟體包的新版本,有些地方發生了變化,現在應該刪除一些文件(例如不應該執行更多的舊 upstart 腳本)。我剛剛從 debian 包中刪除了這些文件,看起來它們在生成的 deb 文件中失去了。此外,如果我在乾淨的機器上安裝新版本,一切都很好,但是當我升級現有安裝時,刪除的文件仍然存在並出現在封包件擁有的列表中:(dpkg -L <package name>或者/var/lib/dpkg/info/<package-name>.list顯然是同一件事)。

所以我的問題是:我應該如何正確刪除這些文件?

答案是,當涉及到 conffiles 時,包的使用者打算自己解決 cruft 的清理問題。

我不確定從 Debian 打包策略的角度來看的細節,但是如果您需要在升級中刪除、重新定位或修改 conffile,您可以在各種 preinst/postinst 掛鉤腳本之一中處理它。我知道我已經在一定程度上看到了現有的軟體包。

/var/lib/dpkg/info/grub-common.postinst這是來自 grub postinst腳本的範例。對dpkg-maintscript-helper rm_conffile的呼叫將在某些條件下刪除配置。

#!/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

引用自:https://serverfault.com/questions/803357