web-dev-qa-db-fra.com

Installation d'un paquet avec les paramètres en cours d'invite sur cli

Disons que je dois installer un paquet en utilisant dpkg -i, ce qui inciterait l'utilisateur à saisir certaines valeurs telles que le nom d'utilisateur et le mot de passe.

Je peux facilement le faire depuis le terminal et procéder à l'installation.

Mais suivant ce plan, je ne peux pas automatiser l’installation, par exemple si je veux écrire un script pour l’installation d’un package prenant les paramètres de manière interactive.

Je souhaite donc un plan d’installation de dpkg interactif (demandant le nom d’utilisateur et le mot de passe), mais pouvant toujours être appelé à partir d’un script afin que le processus d’installation soit automatisé.

Comment puis-je m'y prendre? Y a-t-il des alternatives?

3
user207475

Pour de telles choses, vous pouvez écrire un script expect. Ce n'est pas très difficile à gérer.

Vous devez d’abord installer l’interprète:

apt-get install expect

Ensuite, vous pouvez écrire quelque chose comme ceci par exemple:

#!/usr/bin/expect -f
set timeout 30
set password "pass"
set username "user"

#run the command
spawn dpkg -i package.deb

# Look for username Prompt
expect "*?sername:*" #<--- this statement is important it wait's for a Prompt "username:"
send "$username\r"

# Look for passwod Prompt
expect "*?assword:*" #<--- the same with the "password:" Prompt
send "$password\r"

#dpkg -i continues

Le script doit être exécutable, bien sûr. Expect est idéal pour contrôler des programmes de terminaux interactifs via un script (ssh, ftp, ...)

3
chaos

Vous pouvez créer un fichier de préconfiguration à l'aide des outils du paquet debconf-utils. Vous pouvez créer manuellement un fichier de préconfiguration avec:

<owner> <question> <type> <value> 

ou à titre d'exemple:

my-package username string Bob
my-package password string I$aN1ceGuy

Plus facile consiste à l'installer sur votre machine et à exécuter:

debconf-get-selections | grep my-package

Utilisez la sortie pour créer un fichier.

Une fois que vous avez le fichier, utilisez:

debconf-set-selections <filename>.  
dpkg -i my-package

Les sélections répertoriées dans le nom du fichier seront utilisées par défaut et le paquet s’installera en mode silencieux.

http://www.debian.org/releases/stable/i386/apbs03.html.fr

3
Jeffery Williams