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