44 votes

Comment automatiser la mise en place du paquet "keyboard-configuration" ?

J'écris un script pour installer Ubuntu 16.04 server dans un chroot jail, en utilisant debootstrap (sur une machine Ubuntu 16.04 server).

Lors de la mise en place de la keyboard-configuration il demande le type de clavier :

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: 

Je veux automatiser cette opération, de manière à ce qu'elle ne pose pas de question et continue simplement l'installation.

Comment puis-je le faire ?

44voto

Nicu Stiurca Points 541

Von un semblable Question StackOverflow :

Si la variable ENV DEBIAN_FRONTEND=noninteractive est défini lorsque vous exécutez apt-get install keyboard-configuration il n'y aura pas d'interaction. Vous pouvez donc simplement exécuter :

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration

3voto

buttercup Points 584

C'est simple à automatiser, il suffit de définir la bonne configuration debconf pour ce paquet.

Première installation debconf-utils :

sudo apt install debconf-utils

Si vous avez déjà configuré le paquet, vous pouvez lire la configuration debconf avec :

debconf-get-selections | grep keyboard-configuration

Si vous n'avez pas configuré le paquet ou si vous souhaitez modifier vos sélections, vous pouvez le faire avec :

dpkg-reconfigure keyboard-configuration

Exporter vos sélections dans un fichier

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

Copie selections.conf sur la machine cible et définir les sélections :

debconf-set-selections < selections.conf

Lorsque vous installerez ou reconfigurerez le paquet, vos choix seront désormais sélectionnés automatiquement.

dpkg-reconfigure keyboard-configuration -f noninteractive

2voto

Feldspar15523 Points 361

Vous pourriez utiliser xdotool . Lors du lancement du script, mettre & sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return .

Je ne l'ai pas testé, mais cela devrait fonctionner.

Réponse 2 :

Exécutez la commande, mais avec la sortie redirigée vers un fichier ( > testfile ).

Ouvrez un autre terminal et exécutez

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  

Ensuite, cliquez à nouveau sur le premier terminal.

Réponse 3 :

Je pense que tout ce que vous devez faire est de mettre le numéro que vous voulez dans un fichier, testfile et lancez la commande avec < testfile annexé.

2voto

BenjaminBrink Points 81

"debootstrap est vraiment juste un Shell Shell" --from https://wiki.debian.org/Debootstrap

Cela signifie que vous pourriez lire le script pour voir s'il existe des moyens de passer l'info via une variable d'environnement, de fournir un argument lors de l'invocation deboostrap, ou de créer votre propre version modifiée pour votre application spécifique.

2voto

Hatim Points 55

Celui-ci fonctionnera comme un charme ; ajoutez ces deux lignes de code avant votre commande :

  echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
  sudo apt-get install -y -q

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X