アレックスのソリューションはエラーを抑制し、原因をほぼ正しましたが、質問に答えることはできません(答えを事前にシードしてスクリプトから実行している場合は問題ありませんが、新しいパッケージを試す場合は本当に迷惑です) )。中心的な問題は、sshとdebconfのさまざまなフロントエンドによって行われた仮定間の相互作用です。
sshから始めましょう。sshは、リモートコマンドを指定しない場合、リモートエンドでptyが必要であり、リモートを指定しないことを前提としています(これは、このコマンドではなく、90%の時間で非常にうまく機能します)。これは-t
、ptyを強制する-T
オプションまたはpty を強制しないオプション(または対応する構成ファイルオプション)でオーバーライドできます。さらに、ptyを使用する場合、TERM
環境変数がコピーされます(例外として、完了した詳細および公式の懸賞エントリフォームのチェックドキュメントが適用される場合があります)。また、この-x
オプションはX11転送を無効にして-X
有効にします。
Debconf自体には(設計上)対話性の要件はありませんが、さまざまなフロントエンドにはあり、それぞれに異なる要件があります。
最高のフロントエンドはgnomeであると思います(私が動作しなかったフロントエンドもあります)。gnomeフロントエンド(およびkdeフロントエンド)には、デフォルト以外のライブラリとX11サーバーが必要です。そのため、gnomeフロントエンドを強制するコマンドライン(適切なライブラリがインストールされたら)は次のようになります。
ssh -X <remote_srv> "DEBIAN_FRONTEND=gnome apt-get autoremove"
または、kdeを好む場合
ssh -X <remote_srv> "DEBIAN_FRONTEND=kde apt-get autoremove"
ダイアログフロントエンド(デフォルト)には、TERM変数で指定された最小レベルの機能を備えたptyと端末が必要です(実際には、これはダム以外の完全なterminfo記述を持つものです)。
ssh -t <remote_srv> "TERM=$TERM DEBIAN_FRONTEND=dialog apt-get autoremove"
または
ssh -t <remote_srv> "apt-get autoremove"
readlineフロントエンドの要件はそれほど厳しくなく、ダム端末で動作しますが、ptyが必要です。
ssh -t <remote_srv> "DEBIAN_FRONTEND=readline apt-get autoremove"
エディターフロントエンドは、エディターに依存する特定の要件を持つエディターに依存します。
ssh -t <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=vi apt-get autoremove"
ssh -X <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=gvim\ -f apt-get autoremove"
非対話型フロントエンドには要件はありませんが、質問はしません(必要な場合もそうでない場合もあります)。
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"