
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 ncurses
que 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 dialog
la ejecución de emacs en una GUI:
y dialog
ejecutándose en emacs ejecutándose en xterm:
Manten eso en menteTérmino Ansiestá diseñado para una descripción de terminal específica,eterm-color
- cual esnoen el debianncurses-base
paquete: 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:
- AnsiTérmino(wiki de Emacs)
- AnsiTermSugerencias(wiki de Emacs)
- Emacs: ejecutar Shell en Emacs(Por Xah Lee)
En cuanto al debconf
mensaje, Google es tu amigo. Aquí hay algunas respuestas razonablemente completas:
- No se puede inicializar la interfaz: cuadro de diálogo cuando se usa ssh(Pregunte a Ubuntu)
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