我们有自动构建 bash 脚本,在开始时执行命令
apt-get update;
apt-get upgrade -q -y -u
--allow-downgrades --allow-remove-essential --allow-change-held-packages
--allow-change-held-packages --allow-unauthenticated;
但它一直在终端中弹出窗口询问这个问题
配置文件/etc/default/grub有新版本(/tmp/grub.xC3mMKP0zx)可用,但当前安装的版本已在本地修改。
这就是自动脚本执行挂起的原因,我无法使用 --allow* 或 -y 选项强制跳过它
我们的ubuntu是16.04
我怎样才能避免弹出窗口的出现?
请帮忙,谢谢
- 更新 -
我尝试了很多解决方案 还有这个: 使用 apt-get install 时强制非交互式“dpkg --configure”被提到与这个问题重复
apt-get -o DPkg::Options::=--force-confdef upgrade -q -y -u --force-yes
它仍然是相同的提示弹出窗口,要求选择默认选项
答案1
我发现DEBIAN_FRONTEND=非交互式此处的选项:https://superuser.com/questions/164553/automatically-answer-yes-when-using-apt-get-install
只有 DEBIAN_FRONTEND=noninteractive 和 Dpkg::Options::="--force-confdef" 的组合才能阻止这种情况选项弹出窗口打开
所以最终的命令是
apt-get update;
DEBIAN_FRONTEND=noninteractive apt-get upgrade -q -y -u -o
Dpkg::Options::="--force-confdef" --allow-downgrades
--allow-remove-essential --allow-change-held-packages
--allow-change-held-packages --allow-unauthenticated;