
Linux サーバーをアップグレードする場合、管理サーバーの 1 つから次のようなコマンドを発行します。
ssh server1.mycompany.com apt upgrade
特定の状況下では、コマンドから次の出力が得られます。
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
ダイアログを操作できないので、デフォルトが選択されていると思います。他の人はこの問題をどのように対処していますか? ダイアログがポップアップする場合に備えて、各サーバーにログインして apt アップグレードを実行するのは、良い方法ではないようです。ダイアログがポップアップしたときに「apt アップグレード」などを中止する方法があるでしょうか? または、さらに良い方法として、SSH 接続のクライアント側、つまり ssh しているサーバーにポップアップを表示する方法があるかもしれません。から?
答え1
ターミナルが必要です。これは、
-t
pty を強制するパラメータ、または-T
pty を強制しないパラメータ (または対応する設定ファイル オプション) のいずれかを使用して設定できます。
さらに、pty を使用する場合、TERM
環境変数がコピーされます (例外が適用される場合があります。完了した詳細と公式の懸賞応募フォームについてはドキュメントを確認してください)。
要件がなく、質問もしない非対話型フロントエンドを指定することもできます (これが必要な場合とそうでない場合があります)。
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"
詳細については、Ask Ubuntuの投稿をご覧ください。 フロントエンドを初期化できません: ssh 使用時のダイアログ。