使用 apt-get install 时强制非交互式“dpkg --configure”

使用 apt-get install 时强制非交互式“dpkg --configure”

我正在远程服务器上安装软件包,使用ssh

ssh root@my-host "DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get --quiet --yes install w3m"

即使我已经设置了DEBIAN_FRONTEND=noninteractive,安装仍然卡在以下问题上,我必须手动按 Enter:

Configuration file '/etc/w3m/config'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** config (Y/I/N/O/D/Z) [default=N] ? 

dpkg --configure -a我怀疑,这个问题是由而不是由人提出的apt-get,因此非交互式被忽略。

如何自动执行此操作并自动选择默认选项,而无需询问?

答案1

这种配置文件更改冲突由 处理dpkg,您可以使用以下命令强制它选择默认选项--force-confdef。请留意来自的警告文档尽管:

警告:这些选项主要仅供专家使用。在没有完全了解其影响的情况下使用它们可能会破坏您的整个系统。

要在 APT 调用时提供此选项dpkg,您需要将其添加到 APT 设置中,例如将以下行添加到/etc/apt/apt.conf

DPkg::options { "--force-confdef"; };

或者,对于单次调用:

apt-get -o DPkg::Options::=--force-confdef ...

DEBIAN_FRONTEND=noninteractive只影响debconf,并且在这种情况下根本不涉及 。

相关内容