非交互式 apt 升级

非交互式 apt 升级

我正在尝试使用 Vagrant 和普通 bash 脚本来配置一台机器。

这两条线是:

DEBIAN_FRONTEND=noninteractive apt-get update
DEBIAN_FRONTEND=noninteractive apt-get upgrade -yq

然而,它并没有像预期的那样工作:

default: Configuration file '/etc/update-manager/release-upgrades'
default:  ==> Modified (by you or by a script) since installation.
default:  ==> Package distributor has shipped an updated version.
default:    What would you like to do about it ?  Your options are:
default:     Y or I  : install the package maintainer's version
default:     N or O  : keep your currently-installed version
default:       D     : show the differences between the versions
default:       Z     : start a shell to examine the situation
default:  The default action is to keep your current version.
default: 
default: *** release-upgrades (Y/I/N/O/D/Z) [default=N] ? dpkg: error processing package ubuntu-release-upgrader-core (--configure):
default: 
default:  end of file on stdin at conffile prompt

我可以使用其他选项来回答Y这个问题吗?

答案1

< 1.1 号公寓

尝试以下命令强制升级非交互式会话:

DEBIAN_FRONTEND=noninteractive \
        apt-get \
                -o Dpkg::Options::="--force-confnew" \
                --force-yes \
                -fuy \
                dist-upgrade

注意:用于--force-confold保留旧配置,并--force-confnew保留新配置。

来源:apt-get -y 升级非交互式会话 - 并替换 /etc 中的 conf 文件

>= 1.1 版

如果你使用的是 Apt 1.1 或更高版本,--force-yes已被弃用,因此您必须使用以 开头的选项--allow,例如--allow-downgrades--allow-remove-essential--allow-change-held-packages

因此命令是:

DEBIAN_FRONTEND=noninteractive \
  apt-get \
  -o Dpkg::Options::=--force-confold \
  -o Dpkg::Options::=--force-confdef \
  -y --allow-downgrades --allow-remove-essential --allow-change-held-packages

来源:CFE-2360:使 apt_get 包模块版本感知

有关的:

相关内容