¿Por qué el diálogo no es compatible con el shell de emacs en Debian?

¿Por qué el diálogo no es compatible con el shell de emacs en Debian?

Diálogoes una utilidad que proporciona cuadros de diálogo a partir de scripts de shell; es posible que los haya visto en aptitude durante las actualizaciones. Cuando uso Emacs Shell ( M-x shell) y escribo sudo aptitude safe-upgrade, aparece el siguiente error varias veces:

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 qué Dialog no funciona con el shell de Emacs? ¿Y debería usar algún sustituto?

Respuesta1

Usos del diálogoncurses, que no funciona en Emacs shell-mode, y segúnENTONCES:"¿Cuál sería una buena alternativa a ncurses que funcione bajo el shell de emacs?", no existe ninguna alternativa adecuada ncursesque funcione en emacs-shell,peroinsinúacapacidades terminales completasde otros modos de Emacs (de los cuales desafortunadamente no sé nada), tal vezPlazo múltiple?

Respuesta2

En realidad, emacs tiene más de un shell. Hay unamudoshell que no admite aplicaciones de terminal de pantalla completa, y existe el "Término Ansi", quehace. Incluso podrías ejecutar emacs dentro de ese shell (aunque ejecutar comandos dentro de la ventana puede ser más complicado que usar emacs en su forma habitual).

Por ejemplo, aquí hay una captura de pantalla de dialogla ejecución de emacs en una GUI:

captura de pantalla del diálogo en ansi-term/GUI

y dialogejecutándose en emacs ejecutándose en xterm:

captura de pantalla del diálogo en ansi-term/xterm

Manten eso en menteTérmino Ansiestá diseñado para una descripción de terminal específica,eterm-color- cual esnoen el debianncurses-basepaquete: necesitaríasncurses-term. Se aplican advertencias similares a cualquier sistema que posponga la base de datos completa del terminal a un paquete separado.

Otras lecturas:

En cuanto al debconfmensaje, Google es tu amigo. Aquí hay algunas respuestas razonablemente completas:

Respuesta3

Ese es un mensaje normal al ejecutar comandos remotos desatendidos. Simplemente coloque esto en la parte superior de su script desatendido:

export DEBIAN_FRONTEND=noninteractive

esto le indicará a los scripts que está ejecutando un script desatendido para que sepan que deben realizar el comportamiento predeterminado... similar pero más aplicable en general a agregar el indicador -y a algunos parámetros de entrada cli

información relacionada