
会話はシェルスクリプトでダイアログボックスを提供するユーティリティなので、アップグレードプロセス中に適切に見たことがあります。 Emacsシェル(M-x shell
)を使用してを入力すると、次のsudo aptitude safe-upgrade
エラーが複数回発生します。
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
DialogがEmacsシェルで動作しないのはなぜですか?使用すべき代替品はありますか?
答え1
会話目的ncurses
、Emacsでは動作しませんshell-mode
。だから:「emacsシェルで動作するncursesのための良い選択肢は何ですか?」ncurses
、には適切な選択肢はありませんemacs-shell
。しかし、それを暗示する全端末機能他のEmacsモード(残念ながら私はこれについて何も知りません)、おそらく複数学期?
答え2
実際、emacsには1つ以上のシェルがあります。一つある無音シェルはフルスクリーン端末アプリケーションをサポートしておらず、「Ansi Term」があります。する。シェル内でemacsを実行することもできます(ウィンドウ内でコマンドを実行することは、通常の方法でemacsを使用するよりも複雑になる可能性があります)。
たとえば、以下はdialog
GUI emacsで実行されるスクリーンショットです。
そしてdialog
emacsで実行し、xtermで実行します。
覚えてくださいアンシー用語特定の端末記述用に設計されています。eterm-color
- これいいえDebian でncurses-base
パッケージ:あなたが必要ですncurses-term
。端末データベース全体を別々のパッケージに延期するシステムにも同様の警告が適用されます。
追加資料:
- アンシー用語(Emacs Wiki)
- AnsiTermのヒント(Emacs Wiki)
- Emacs:Emacsでシェルを実行する(写真:リシャ)
メッセージングに関しては、debconf
Googleはあなたの友達です。以下はかなり包括的な答えです。
- SSHを使用するとフロントエンドを初期化できません:ダイアログボックス(Ubuntuに聞いてください)
答え3
これは、無人リモートコマンドを実行したときに表示される一般的なメッセージです。無人スクリプトの上部に次のように入力します。
export DEBIAN_FRONTEND=noninteractive
これはスクリプトに無人実行中であることを通知するため、デフォルトの動作のみを実行するように通知します。同様ですが、特定の cli 入力パラメータに -y フラグを追加する場合に、より一般的に適用可能です。