為什麼dialog在Debian上不支援emacs shell?

為什麼dialog在Debian上不支援emacs shell?

對話是一個從 shell 腳本提供對話框的實用程序,您可能在升級過程中在 aptitude 中看到它們。當我使用 Emacs shell ( 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 shell 一起使用?我應該使用一些替代品嗎?

答案1

對話框用途ncurses,這在 Emacs 中不起作用shell-mode,並且根據所以:“在 emacs shell 下工作的 ncurses 的一個好的替代品是什麼?”,沒有合適的替代方案ncurses可以在emacs-shell它暗示完整的終端能力其他 Emacs 模式(不幸的是我對此一無所知),也許多學期

答案2

實際上,emacs 不只一個 shell。有一個啞的shell 不支援全螢幕終端應用程序,並且有“Ansi Term”,它。您甚至可以在該 shell 內執行 emacs(儘管在視窗內執行命令可能比以通常方式使用 emacs 更複雜)。

例如,下面是dialog在 GUI emacs 中運行的螢幕截圖:

ansiterm / GUI 中對話框的螢幕截圖

dialog在 emacs 中運行,在 xterm 中運行:

ansi-term / xterm 中對話框的螢幕截圖

請記住安西術語專為特定終端描述而設計,eterm-color— 這是不是在 Debian 中ncurses-base包裹:你需要ncurses-term。類似的警告適用於將完整的終端資料庫推遲到單獨的包的任何系統。

延伸閱讀:

至於debconf消息,谷歌是你的朋友。以下是一些相當全面的答案:

答案3

這是執行無人值守遠端命令時的正常訊息。只需將其放入無人值守腳本的頂部即可:

export DEBIAN_FRONTEND=noninteractive

這將告訴腳本您正在執行無人值守的腳本,以便它們知道只執行預設行為...類似但更普遍適用於將 -y 標誌添加到某些 cli 輸入參數

相關內容