Apt

使用 apt-get install 時強制非互動式“dpkg –configure”

  • February 21, 2022

我正在遠端伺服器上安裝軟體包,使用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,因此非互動式被忽略了。

如何自動執行此操作並自動選擇預設選項而不被詢問?

這種配置文件更改衝突由 處理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,並且在這種情況下根本不涉及。

引用自:https://unix.stackexchange.com/questions/416815