dpkg-reconfigure
我最近开始了解GNU 软件包的固定安装所具有的恢复能力mailutils
。在安装过程结束时,会出现一个对话框(ncurses?),提示用户做出选择并填写一些空白。这一切都很好,我想如果你足够熟练,你就可以避免在“安装后配置对话框”中犯任何错误,或者PICD
正如我在续集中所说的那样。
我不熟练,需要重新运行“PICD”。由于还不熟悉dpkg-reconfigure
,我认为有必要卸载然后重新安装。但是当我这样做时,安装完成了 - 但“PICD”没有重新出现。我尝试了reboot
,但仍然没有“PICD”!?!
最终,有人向我提供了线索dpkg-reconfigure
,但dpkg-reconfigure mailutils
也未能恢复“PICD”。事实证明,需要重新配置的并不是MTA 。这需要一段时间才能解决,因为 Debian 打包器巧妙地隐藏在一个名为. 因此,获得第二次重新配置机会所需的魔法是:。这个发现使我能够采用反复试验的方法进行配置,并最终完成了它。mailutils
postfix
mailutils
postfix
default-mta
dpkg-reconfigure postfix
但这给我提出了一两个问题:
是什么导致后续安装时无法显示“PICD”?我的意思是,安装脚本如何知道用户已经看到“PICD”?安装程序是否记录并保存了一些值以防止“PICD”重播?
为什么安装程序会禁用“PICD”的后续演示(没有咒语
dpkg-reconfigure
)?这实际上有什么意义呢?
该
postfix
包用于debconf
其配置。您可以将其视为 Debian 中的一种注册表;大多数在安装过程中需要配置的软件包都使用它。您可以通过运行查看它当前存储的值debconf-get-selections
。包可以在安装期间确定它期望的值是否已存储在数据库中debconf
。一旦在 中设置了值
debconf
,通常的做法是在软件包安装过程中不显示相应的对话框。这可以避免多次询问用户相同的问题,特别是每次升级软件包时(Debian Policy 强烈建议这样做)。它还允许预先配置软件包,因此可以使用自定义设置安装它们,而无需用户交互;这是自动化安装的常见做法,其中许多系统需要以相同的方式进行配置。正如您所确定的,如果需要修改配置设置,最好的方法是运行
dpkg-reconfigure
. 另一种可能性是清除受影响的软件包,然后重新安装它:如果没有其他依赖(即使是弱依赖) 或default-mta
,postfix
则会sudo apt purge --autoremove mailutils
清除所有内容,而无需确定该postfix
软件包实际上有问题。(实际上,您必须postfix
自行清除,因为许多软件包将阻止default-mta
成为自动删除候选者,包括unattended-upgrades
或cron
。)