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

3

Diálogo é um utilitário que fornece caixas de diálogo a partir de scripts de shell, você pode tê-los visto no aptitude durante as atualizações. Quando eu uso o shell Emacs ( M-x shell ) e digite 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 Emacs? E devo usar algum substituto?

    
por Mirzhan Irkegulov 19.03.2012 / 10:54

3 respostas

5

O diálogo usa ncurses , que não funciona no shell-mode do Emacs e de acordo com SO: "O que seria uma boa alternativa para as ncurses que funcionarão sob o shell emacs?" , há nenhuma alternativa adequada para ncurses que funcionaria em emacs-shell , mas ele sugere capacidades completas de terminais de outros modos do Emacs (que infelizmente eu não sei nada sobre) talvez Multitermo ?

    
por 19.03.2012 / 11:05
2

Na verdade, o emacs tem mais de um shell. Há um shell dumb que não suporta aplicativos de terminal de tela cheia, e há o "Termo Ansi", que faz . Você poderia até rodar o emacs dentro daquele shell (embora executar comandos dentro da janela seja mais complicado do que usar o emacs da maneira usual).

Por exemplo, aqui está uma captura de tela de dialog em execução em um GUI emacs:

edialogemexecuçãonoemacsemexecuçãonoxterm:

TenhaemmentequeTermoAnsiéprojetadoparaumadescriçãodeterminalespecífica, eterm-color - que é não no Debian % pacotencurses-base : você precisaria de ncurses-term . Advertências similares se aplicam a qualquer sistema que difere o banco de dados de terminais completo para um pacote separado.

Leitura adicional:

Quanto à mensagem debconf , o google é seu amigo. Aqui estão algumas respostas razoavelmente abrangentes:

por 11.07.2016 / 22:51
1

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

    
por 11.07.2016 / 22:33