web-dev-qa-db-fra.com

Package DEB: le script shell avec debconf n'affiche pas la boîte de dialogue de saisie

Le config script suivant à l'intérieur de control.tar.gz

#!/bin/sh -e

. /usr/share/debconf/confmodule

db_fset mailadmin/database_Host seen false
db_clear
db_purge

db_input medium mailadmin/database_Host || true
db_go

db_get mailadmin/database_Host
echo "$RET" > /tmp/from_config_script.txt

exit 0

avec le gabarit

Template: mailadmin/database_Host
Type: string
Description: The database server's Host name or IP address.

(fichier modèles) ne montre pas de boîte de dialogue de saisie lorsque j'installe le package à l'aide de dpkg -i, et lorsque je l'exécute également à partir de la ligne de commande.

Au lieu de cela, il écrit "localhost" dans / tmp/from_config_script.txt, même si cette valeur par défaut ne fait plus partie du fichier de modèle. Je n'ai jamais vu le popup d'entrée. Le popup d'entrée est ce que j'essaie de réaliser.

J'ai supprimé le paquet avec apt-get purge mailadmin, mais même purger n'a pas effacé cette valeur par défaut. Que puis-je faire?

4
user22611

Solution simple:

db_input high ...

Ceci n'est pas mentionné dans le tutoriel à l'adresse http://www.fifi.org ( http://www.fifi.org/doc/debconf-doc/tutorial.html =), uniquement de manière indirecte.

Une priorité de moyenne est trop basse pour afficher le dialogue. La priorité de seuil doit être définie quelque part sur l'ordinateur. Malheureusement, je ne sais toujours pas où. Mais au moins, je sais comment faire fonctionner les dialogues.

2
user22611

Après avoir suivi la suggestion indiquée dans la réponse précédente, mon script de configuration ne voulait toujours pas lancer de dialogue, etc. Je suis finalement tombé sur ce commentaire dans l'article de page de manuel suivant (voir la section Le script PostInst)

https://manpages.debian.org/testing/debconf-doc/debconf-devel.7.fr.html

Sourcez toujours/usr/share/debconf/confmodule en haut de votre postinst, même si vous n’exécutez aucune commande db_ *. Ceci est nécessaire pour que le script de configuration ait une chance de s'exécuter (voir HACKS pour plus de détails).

Une fois que j'ai trouvé le confmodule dans postinst (même si je n’appelle pas les commandes db_ * ici), mon script de configuration a commencé à fonctionner comme prévu.

0
sbeskur