始终清除包装中的删除

Jer*_*oen 6 package-management packaging apt dpkg

我正在维护一个 debian 包,其中包含一些安装在/etc/. 有没有一种方法可以让我--purge在用户执行常规操作时以某种方式使包始终自动自动运行apt-get remove mypackage

原因是我在 /etc 中有一些配置文件,当二进制文件被删除时,这些文件应该被删除,否则会导致奇怪的行为。但是我仍然想将它们视为 conf 文件,即确保 apt 不会在每次升级包时擦除它们。但是当卸载包时它们应该被删除。

目前我正在我的 postrm 脚本中手动删除 /etc conf 文件。但是我刚刚发现这有一个不幸的副作用:如果用户卸载然后重新安装软件包,则不会重新安装 conf 文件,因为 apt 认为它们仍然存在。那么有没有一种方法可以在我的 postrm 中手动触发一个完整的“清除”,这样 apt 就知道 conf 文件已经消失了?

Sav*_*vic 5

debian 政策禁止您处理属于其他软件包和/或系统更改的文件。(或者至少我认为是这样)

教你的用户

您可以指示用户使用purge而不是remove

sudo apt-get purge mypackage
Run Code Online (Sandbox Code Playgroud)

自动覆盖

如果需要覆盖配置文件,debian 可能会提示用户安装维护者配置文件:http : //www.debian.org/doc/manuals/maint-guide/dother.en.html#conffiles

关于软件的最烦人的事情之一是,当您花费大量时间和精力来定制程序时,结果却让您的所有更改都被升级踩踏。Debian 通过将这样的配置文件标记为 conffiles 来解决这个问题。[55] 当您升级软件包时,系统会询问您是否要保留旧的配置文件。

默认强制新建配置文件

您可以在升级时自动执行此操作:

apt-get -o Dpkg::Options::="--force-confnew" dist-upgrade
Run Code Online (Sandbox Code Playgroud)

来源:http : //raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/https://askubuntu.com/a/104912/5538

提供/冲突/替换

我不确定这一点,但我认为您可以完全清除并用新的软件包版本替换旧的软件包版本。

在这里阅读:http : //www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces