
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-mode
e de acordo comENTÃO:"Qual seria uma boa alternativa para ncurses que funcionaria no shell do emacs?", não há alternativa adequada que ncurses
funcione 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 dialog
execução em uma GUI do emacs:
e dialog
rodando em emacs rodando em xterm:
Tenha em mente queTermo Ansié projetado para uma descrição específica do terminal,eterm-color
- qual énãono Debianncurses-base
pacote: 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:
- AnsiTerm(wiki do Emacs)
- Dicas do AnsiTerm(wiki do Emacs)
- Emacs: execute o Shell no Emacs(Por Xah Lee)
Quanto à debconf
mensagem, o Google é seu amigo. Aqui estão algumas respostas razoavelmente abrangentes:
- Não é possível inicializar o frontend: caixa de diálogo ao usar ssh(Pergunte ao Ubuntu)
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