Come automatizzare la configurazione del pacchetto "tastiera-configurazione"?


15

Sto scrivendo uno script per installare il server Ubuntu 16.04 in una prigione chroot, usando debootstrap (su una macchina server Ubuntu 16.04).

Durante l'installazione del keyboard-configurationpacchetto richiede il tipo di tastiera:

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: 

Voglio automatizzare questo, in modo che non chieda e continua solo con l'installazione.

Come posso fare questo?


Risposte:


15

Da una domanda StackOverflow simile :

Se la variabile ENV DEBIAN_FRONTEND=noninteractiveè impostata durante l'esecuzione apt-get install keyboard-configuration, non richiederà alcuna interazione. Quindi puoi semplicemente eseguire:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration

2

Puoi usare xdotool. Quando si avvia lo script messo & sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return.

Non l'ho provato, ma dovrebbe funzionare.

Risposta 2:

Esegui il comando, ma con l'output reindirizzato a un file ( > testfile).

Apri un altro terminale ed esegui

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  

Quindi, fare clic sul primo terminale.

Risposta 3:

Penso che tutto ciò che devi fare sia inserire il numero desiderato in un file testfileed eseguire il comando con < testfileallegato.


Grazie, idea interessante, ma perderebbe molto tempo o occasionalmente si bloccherebbe quando l'installazione impiegava più tempo del previsto, a seconda della durata del sonno utilizzata.
fadedbee,

Leggere la pagina man di xdotool - sembra essere una cosa di X windows. Sto tentando questo in un ambiente server Ubuntu. Aggiornerò la mia domanda.
fadedbee,

2

Questo è semplice da automatizzare, devi solo impostare la corretta configurazione di debconf per questo pacchetto.

Prima installazione debconf-utils:

sudo apt install debconf-utils

Se hai già configurato il pacchetto, puoi leggere la configurazione di debconf con:

debconf-get-selections | grep keyboard-configuration

Se non hai configurato il pacchetto o desideri modificare le selezioni, puoi farlo con:

dpkg-reconfigure keyboard-configuration

Esporta le selezioni in un file

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

Copia selections.confsul computer di destinazione e imposta le selezioni:

debconf-set-selections < selections.conf

Quando installi o riconfiguri il pacchetto, le tue scelte verranno ora selezionate automaticamente.

dpkg-reconfigure keyboard-configuration -f noninteractive

1

"debootstrap è davvero solo uno script di shell" --da https://wiki.debian.org/Debootstrap

Ciò significa che puoi leggere lo script per vedere se ci sono modi per passare le informazioni tramite una variabile d'ambiente, fornire un argomento quando invochi deboostrap o creare la tua versione modificata per la tua specifica applicazione.


Questo pacchetto viene installato come parte di apt-get install ....un'esecuzione dopo il debootstrap iniziale.
fadedbee,

Quindi, stai dicendo che dopo il apt-get install deboostraptuo paradigma di installazione non consente di modificare le variabili ambientali o l'esecuzione di uno script personalizzato? Va bene.
BenjaminBrink,

Forse questo aiuta. Questo link mostra un esempio di come impostare un file "preeseed" per rispondere ai prompt in un'installazione di Ubuntu: askubuntu.com/questions/122505/…
BenjaminBrink,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.