web-dev-qa-db-ja.com

apt-get -y upgradeは、/ tmp / grub.xC3mMKP0zxファイルを保持することを確認するように求め続けますが、スキップできません

自動化されたビルド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)が利用可能ですが、現在インストールされているバージョンはローカルで変更されています。

enter image description here

これが、自動化されたスクリプト実行がハングし、-allow *または-yオプションを使用して強制的にスキップできない理由です

私たちのubuntuは16.04

ポップアップが表示されないようにするにはどうすればよいですか?

助けてください、ありがとう

-更新-

私は多くの解決策を試しましたこれもこれです:apt-get installを使用するときに非インタラクティブな「dpkg --configure」を強制する これはこの質問と重複していると言われました

apt-get -o DPkg::Options::=--force-confdef upgrade -q -y -u --force-yes

デフォルトオプションの選択を求める同じpromtポップアップ

3
Armen

ここでDEBIAN_FRONTEND = noninteractiveオプションを見つけました: 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;
4
Armen