我正在远程服务器上安装软件包,使用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
,并且在这种情况下根本不涉及 。