Comment automatiser la mise en place du package «configuration clavier»?

15

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

Lors de la configuration du keyboard-configurationpackage, 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, afin qu'il ne demande pas et continue simplement l'installation.

Comment puis-je faire ceci?

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

Réponses:

15

À partir d' une question StackOverflow similaire :

Si la variable ENV DEBIAN_FRONTEND=noninteractiveest définie pendant que vous exécutez apt-get install keyboard-configuration, elle ne demandera aucune interaction. Vous pouvez donc simplement exécuter:

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

Vous pourriez utiliser xdotool. Lors du lancement du script mis & 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 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  

Cliquez ensuite 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 testfileet d'exécuter la commande avec en < testfileannexe.

Feldspar15523
la source
Merci, idée intéressante, mais cela perdrait beaucoup de temps, ou gèlerait parfois lorsque l'installation prend plus de temps que prévu, en fonction de la durée de sommeil utilisée.
fadedbee
Lire la page de manuel de xdotool - cela semble être une chose X Windows. J'essaie ceci dans un environnement de serveur Ubuntu. Je mettrai à jour ma question.
fadedbee
2

C'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 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.confsur 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
Josh Enders
la source
1

"debootstrap n'est vraiment qu'un script shell" - de 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.

BenjaminBrink
la source
Ce package est installé dans le cadre d'une apt-get install ....exécution après le debootstrap initial.
fadedbee
Donc, vous dites qu'après que apt-get install deboostrapvotre paradigme d'installation ne permet pas de changer les variables d'environnement ou d'exécuter un script personnalisé? D'accord.
BenjaminBrink
Peut-être que cela aide. Ce lien montre un exemple de configuration d'un fichier "pré-ensemencé" pour pré-répondre aux invites dans une installation Ubuntu: askubuntu.com/questions/122505/…
BenjaminBrink