Почему dialog не поддерживает оболочку emacs в Debian?

Почему dialog не поддерживает оболочку emacs в Debian?

Диалогэто утилита, которая предоставляет диалоговые окна из скриптов оболочки, вы могли видеть их в 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, и согласноТАК:«Какая альтернатива ncurses будет работать в оболочке emacs?», нет подходящей альтернативы, ncursesкоторая бы работала в emacs-shell,ноэто намекает наполные возможности терминаладругих режимов Emacs (о которых я, к сожалению, ничего не знаю), возможноМноготерминовый?

решение2

На самом деле, у emacs есть не одна оболочка.тупойоболочка, которая не поддерживает полноэкранные терминальные приложения, и есть "Ansi Term", котораяделает. Вы даже можете запустить emacs внутри этой оболочки (хотя запуск команд внутри окна может оказаться сложнее, чем использование emacs обычным способом).

Например, вот скриншот dialogзапуска Emacs в графическом интерфейсе:

снимок экрана диалога в ansi-term / GUI

и dialogзапуск в emacs, запущенный в xterm:

снимок экрана диалога в ansi-term / xterm

Имейте в виду, чтоТермин ANSIпредназначен для конкретного описания терминала,eterm-color- которыйнетв Дебианеncurses-baseпакет: вам понадобитсяncurses-termАналогичные предостережения применимы к любой системе, которая переносит полную базу данных терминала в отдельный пакет.

Дальнейшее чтение:

Что касается debconfсообщения, то google — ваш друг. Вот несколько достаточно полных ответов:

решение3

Это нормальное сообщение при выполнении неконтролируемых удаленных команд. Просто поместите это в начало вашего неконтролируемого скрипта:

export DEBIAN_FRONTEND=noninteractive

это сообщит скриптам, что вы выполняете автоматический скрипт, поэтому они будут знать, что нужно просто выполнять поведение по умолчанию... похоже, но более применимо к добавлению флага -y к некоторым входным параметрам cli

Связанный контент