如何在 Ubuntu 1604 和 1804 中禁用交互式对话框?

Hor*_*sty 5 command-line apt sudo

我发现了这个问题并且我的脚本基本上有同样的问题。

但!我不是用 packer 运行它,而是用一个简单的脚本:

DEBIAN_FRONTEND=noninteractive sudo apt-get update
DEBIAN_FRONTEND=noninteractive sudo dpkg --configure -aq
DEBIAN_FRONTEND=noninteractive sudo apt-get upgrade -yq --force-yes
DEBIAN_FRONTEND=noninteractive sudo apt-get dist-upgrade -yq --force-yes
Run Code Online (Sandbox Code Playgroud)

...和其他东西。

该脚本确实在 1404 上工作,但是对于 1604 Xenial 和 1804 Bionic,我遇到了问题,即对话框提示想要在脚本中打开并且不会自行继续。这是因为我无法在工作站上使用键盘输入进行响应。

在我看来,这个解决方案对于 GRUB 来说似乎风险太大,但我需要自动化,因为我无法手动更新数百台服务器。

我认为这是所有“新”1604 和 1804 机器的问题。

有人知道解决方案吗?

更新:我尝试了这个接受的答案解决方案,它给了我以下错误:

E: Invalid operation Dpkg::Options::=--force-confdef
Run Code Online (Sandbox Code Playgroud)

ste*_*ver 5

您需要DEBIAN_FRONTEND=noninteractivesudo环境内部进行设置- 而不是在它之前:

前任。

$ sudo DEBIAN_FRONTEND=noninteractive sh -c 'echo $DEBIAN_FRONTEND'
noninteractive
Run Code Online (Sandbox Code Playgroud)

然而

$ DEBIAN_FRONTEND=noninteractive sudo sh -c 'echo $DEBIAN_FRONTEND'
(empty)
Run Code Online (Sandbox Code Playgroud)