¿Cómo automatizar la configuración del paquete de "configuración de teclado"?

15

Estoy escribiendo un script para instalar el servidor Ubuntu 16.04 en una cárcel chroot, usando debootstrap (en una máquina del servidor Ubuntu 16.04).

Durante la configuración del keyboard-configurationpaquete, solicita el tipo de teclado:

Setting up keyboard-configuration (1.108ubuntu15) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
Configuring keyboard-configuration
----------------------------------

The layout of keyboards varies per country, with some countries having multiple
common layouts. Please select the country of origin for the keyboard of this
computer.

  1. Afghani                                     48. Irish
  2. Albanian                                    49. Italian
...    
  28. English (UK)                               75. Slovak
  29. English (US)                               76. Slovenian
...
  45. Icelandic                                  92. Vietnamese
  46. Indian                                     93. Wolof
  47. Iraqi
Country of origin for the keyboard: 

Quiero automatizar esto, para que no pregunte, y solo continúe con la instalación.

¿Cómo puedo hacer esto?

fadedbee
fuente
relacionado: stackoverflow.com/questions/38165407/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Respuestas:

15

De una pregunta similar de StackOverflow:

Si la variable ENV DEBIAN_FRONTEND=noninteractivese establece mientras ejecuta apt-get install keyboard-configuration, no solicitará ninguna interacción. Entonces puedes simplemente ejecutar:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration
Nicu Stiurca
fuente
2

Podrías usar xdotool. Al iniciar el script poner & sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return.

No he probado esto, pero debería funcionar.

Respuesta 2:

Ejecute el comando, pero con la salida redirigida a un archivo ( > testfile).

Abre otra terminal y ejecuta

while true
do 
    if [ "$(tac testfile | grep -m 1 .)" = "Country of origin for the keyboard" ]
    then 
    xdotool type <number you want to put> && xdotool key Return && break
    fi
done  

Luego, haga clic de nuevo en la primera terminal.

Respuesta 3:

Creo que todo lo que necesita hacer es poner el número que desea en un archivo testfiley ejecutar el comando con < testfileadjunto.

Feldespato15523
fuente
Gracias, idea interesante, pero desperdiciaría mucho tiempo u ocasionalmente se congelaría cuando la instalación demorara más de lo esperado, dependiendo de la duración del sueño utilizado.
fadedbee
Leer la página de manual de xdotool: parece ser una cosa de X windows. Estoy intentando esto en un entorno de servidor Ubuntu. Actualizaré mi pregunta.
fadedbee
2

Esto es simple de automatizar, solo necesita establecer la configuración debconf adecuada para este paquete.

Primera instalación debconf-utils:

sudo apt install debconf-utils

Si ya ha configurado el paquete, puede leer la configuración de debconf con:

debconf-get-selections | grep keyboard-configuration

Si no ha configurado el paquete o desea cambiar sus selecciones, puede hacerlo con:

dpkg-reconfigure keyboard-configuration

Exporte sus selecciones a un archivo

debconf-get-selections | grep keyboard-configuration > selections.conf

Copie selections.confa la máquina de destino y configure las selecciones:

debconf-set-selections < selections.conf

Cuando instale o reconfigure el paquete, sus opciones ahora se seleccionarán automáticamente.

dpkg-reconfigure keyboard-configuration -f noninteractive
Josh Enders
fuente
1

"debootstrap es realmente solo un script de shell" - de https://wiki.debian.org/Debootstrap

Esto significa que puede leer el script para ver si hay formas de pasar la información a través de una variable de entorno, proporcionar un argumento al invocar deboostrap o crear su propia versión modificada para su aplicación específica.

BenjaminBrink
fuente
Este paquete se está instalando como parte de una apt-get install ....ejecución después del debootstrap inicial.
fadedbee
Entonces, ¿está diciendo que después de apt-get install deboostrapsu paradigma de instalación no permite cambiar las variables ambientales o ejecutar un script personalizado? Bueno.
BenjaminBrink
Quizás esto ayude. Este enlace muestra un ejemplo de cómo configurar un archivo "preeseed" para responder preguntas en una instalación de Ubuntu: askubuntu.com/questions/122505/…
BenjaminBrink