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?
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
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
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é.
"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.