なぜ dialog は Debian 上の emacs シェルをサポートしないのですか?

なぜ dialog は Debian 上の emacs シェルをサポートしないのですか?

ダイアログは、シェル スクリプトからダイアログ ボックスを提供するユーティリティです。アップグレード中に aptitude で見たことがあるかもしれません。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には複数のシェルがあります。バカフルスクリーンのターミナルアプリケーションをサポートしていないシェルと、「Ansi Term」があります。するシェル内で emacs を実行することもできます (ただし、ウィンドウ内でコマンドを実行するのは、通常の方法で emacs を使用するよりも複雑になる可能性があります)。

たとえば、dialogGUI emacs で実行しているスクリーンショットを次に示します。

ansi-term / GUI のダイアログのスクリーンショット

そして、dialogemacsで実行し、xtermで実行します:

ansi-term / xterm のダイアログのスクリーンショット

それを念頭に置いてANSI用語特定の端末記述用に設計されており、eterm-color—それはないデビアンncurses-baseパッケージ: 必要なものncurses-term完全な端末データベースを別のパッケージに委ねるシステムにも同様の注意事項が適用されます。

参考文献:

メッセージに関してはdebconf、Google があなたの味方です。ここに、かなり包括的な回答をいくつか示します。

答え3

これは、無人リモート コマンドを実行するときの通常のメッセージです。これを無人スクリプトの先頭に追加するだけです。

export DEBIAN_FRONTEND=noninteractive

これにより、スクリプトに無人スクリプトを実行していることが通知され、スクリプトはデフォルトの動作を実行するだけで済みます。これは、一部の CLI 入力パラメータに -y フラグを追加することに似ていますが、より一般的に適用できます。

関連情報