it-swarm.com.de

Wie automatisiere ich die Einrichtung des Pakets "keyboard-configuration"?

Ich schreibe ein Skript, um den Ubuntu 16.04-Server mit debootstrap (auf einem Ubuntu 16.04-Server) in einem chroot-Gefängnis zu installieren.

Während der Einrichtung des Pakets keyboard-configuration wird nach dem Tastaturtyp gefragt:

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: 

Ich möchte dies automatisieren, damit es nicht fragt und einfach mit der Installation fortfährt.

Wie kann ich das machen?

11
fadedbee

Von eine ähnliche StackOverflow-Frage:

Wenn die ENV-Variable DEBIAN_FRONTEND=noninteractive festgelegt ist, während Sie apt-get install keyboard-configuration ausführen, wird keine Interaktion angefordert. So können Sie einfach ausführen:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration
9
Nicu Stiurca

Dies ist einfach zu automatisieren. Sie müssen lediglich die richtige Debconf-Konfiguration für dieses Paket festlegen.

Zuerst installiere debconf-utils:

Sudo apt install debconf-utils

Wenn Sie das Paket bereits konfiguriert haben, können Sie die Debconf-Konfiguration folgendermaßen lesen:

debconf-get-selections | grep keyboard-configuration

Wenn Sie das Paket nicht konfiguriert haben oder Ihre Auswahl ändern möchten, können Sie dies tun mit:

dpkg-reconfigure keyboard-configuration

Exportieren Sie Ihre Auswahl in eine Datei

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

Kopieren Sie selections.conf auf den Zielcomputer und legen Sie die Auswahl fest:

debconf-set-selections < selections.conf

Wenn Sie das Paket installieren oder neu konfigurieren, werden Ihre Auswahlmöglichkeiten jetzt automatisch ausgewählt.

dpkg-reconfigure keyboard-configuration -f noninteractive
2
Josh Enders

Sie könnten xdotool verwenden. Geben Sie beim Starten des Skripts & sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return ein.

Ich habe das nicht getestet, aber es sollte funktionieren.

Antwort 2:

Führen Sie den Befehl aus, wobei die Ausgabe jedoch in eine Datei umgeleitet wird (> testfile).

Öffnen Sie ein anderes Terminal und führen Sie es aus

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  

Klicken Sie dann wieder auf das erste Terminal.

Antwort 3:

Ich denke, alles, was Sie tun müssen, ist, die gewünschte Nummer in eine Datei zu schreiben, testfile, und den Befehl mit angefügtem < testfile auszuführen.

2
Feldspar15523

"debootstrap ist wirklich nur ein Shell-Skript" --from https://wiki.debian.org/Debootstrap

Dies bedeutet, dass Sie das Skript lesen können, um festzustellen, ob es Möglichkeiten gibt, die Informationen über eine Umgebungsvariable zu übergeben, beim Aufrufen von deboostrap ein Argument anzugeben oder eine eigene modifizierte Version für Ihre spezielle Anwendung zu erstellen.

1
BenjaminBrink