Por que o diálogo não suporta o shell emacs no Debian?

Por que o diálogo não suporta o shell emacs no Debian?

Diálogoé um utilitário que fornece caixas de diálogo de scripts de shell, você pode tê-las visto no aptitude durante as atualizações. Quando uso o shell Emacs ( M-x shell) e digito sudo aptitude safe-upgrade, recebo o seguinte erro várias vezes:

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

Por que o Dialog não funciona com o shell do Emacs? E devo usar algum substituto?

Responder1

Usos de diálogoncurses, que não funciona no Emacs' shell-modee de acordo comENTÃO:"Qual seria uma boa alternativa para ncurses que funcionaria no shell do emacs?", não há alternativa adequada que ncursesfuncione em emacs-shell,masisso sugerecapacidades completas do terminalde outros modos do Emacs (dos quais infelizmente não sei nada), talvezVários prazos?

Responder2

Na verdade, o emacs possui mais de um shell. Há umburroshell que não suporta aplicativos de terminal em tela cheia, e existe o "Termo Ansi", quefaz. Você pode até executar o emacs dentro desse shell (embora executar comandos dentro da janela possa ser mais complicado do que usar o emacs da maneira usual).

Por exemplo, aqui está uma captura de tela da dialogexecução em uma GUI do emacs:

captura de tela da caixa de diálogo em ansi-term / GUI

e dialogrodando em emacs rodando em xterm:

captura de tela da caixa de diálogo em ansi-term / xterm

Tenha em mente queTermo Ansié projetado para uma descrição específica do terminal,eterm-color- qual énãono Debianncurses-basepacote: você precisariancurses-term. Advertências semelhantes se aplicam a qualquer sistema que transfere o banco de dados completo do terminal para um pacote separado.

Leitura adicional:

Quanto à debconfmensagem, o Google é seu amigo. Aqui estão algumas respostas razoavelmente abrangentes:

Responder3

Essa é uma mensagem normal ao executar comandos remotos autônomos. Basta colocar isso no topo do seu script autônomo:

export DEBIAN_FRONTEND=noninteractive

isso informará aos scripts que você está executando um script autônomo, para que eles saibam apenas executar o comportamento padrão ... semelhante, porém mais geralmente aplicável, à adição do sinalizador -y a alguns parâmetros de entrada cli

informação relacionada