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 文件已经消失了?
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
| 归档时间: |
|
| 查看次数: |
1492 次 |
| 最近记录: |