我正在尝试使用 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 包模块版本感知。
有关的: