web-dev-qa-db-fra.com

Comment automatiser la configuration du paquet "clavier-configuration"?

J'écris un script pour installer le serveur Ubuntu 16.04 dans une prison chroot à l'aide de debootstrap (sur un ordinateur serveur Ubuntu 16.04).

Lors de la configuration du paquetage 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 cela, pour qu'il ne demande pas, et continue simplement avec l'installation.

Comment puis-je faire ceci?

11
fadedbee

De n semblable question StackOverflow:

Si la variable ENV DEBIAN_FRONTEND=noninteractive est définie pendant que vous exécutez apt-get install keyboard-configuration, elle ne demandera aucune interaction. Donc, vous pouvez simplement lancer:

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

Ceci est simple à automatiser, il vous suffit de définir la configuration debconf appropriée 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 de debconf avec:

debconf-get-selections | grep keyboard-configuration

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

dpkg-reconfigure keyboard-configuration

Exportez vos sélections dans un fichier

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

Copiez selections.conf sur la machine cible et définissez les sélections:

debconf-set-selections < selections.conf

Lorsque vous installez ou reconfigurez le package, vos choix seront désormais sélectionnés automatiquement.

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

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

Je n'ai pas testé cela, mais ça devrait marcher.

Réponse 2:

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

Ouvrez un autre terminal et lancez

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  

Cliquez ensuite sur le premier terminal.

Réponse 3:

Je pense que tout ce que vous avez à faire est de mettre le numéro que vous voulez dans un fichier, testfile, et d’exécuter la commande avec < testfile ajouté.

2
Feldspar15523

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

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

1
BenjaminBrink