J'écris un paquet binaire Debian pour mon application (foo). Le script postinst (post-installation) veut poser quelques questions à l'utilisateur et obtenir les réponses. J'essaie d'y parvenir en utilisant debconf. Mais je ne parviens pas à voir l'écran de l'interface utilisateur, posant des questions à l'utilisateur. Je doute que ma configuration et mes modèles soient même appelés par dpkg. J'utilise toutes les instructions du lien tutoriel debconf Quelqu'un pourrait-il m'éclairer sur les questions ci-dessous:
Extrait du fichier de contrôle (uniquement les champs pertinents que je poste)
Depends: debconf (>= 0.2.17)
Extrait de fichier de configuration
#!/bin/sh
set -e
#echo "Config being called"
# Source debconf library.
. /usr/share/debconf/confmodule
# Do you like debian?
db_input medium foo/like_debian || true
db_go
# Check their answer.
db_get foo/like_debian
if [ "$RET" = "false" ]; then
# Poor misguided one..
db_input high foo/why_debian_is_great || true
db_go
fi
Extrait de fichier de modèles
Template: foo/like_debian
Type: boolean
Description: Do you like Debian?
We'd like to know if you like the Debian GNU/Linux system.
Template: foo/why_debian_is_great
Type: note
Description: Poor misguided one. Why are you installing this package?
Debian is great. As you continue using Debian, we hope you will
discover the error in your ways.
Extrait de preinst:
#!/bin/sh
set -e
#echo "Stage preinst" $1
exit 0
Extrait de postinst:
#!/bin/sh
set -e
#echo "Stage postinst" $1
# Source debconf library.
. /usr/share/debconf/confmodule
db_get foo/like_debian
if [ "$RET" = "false" ]; then
touch "/home/myhome/ITWORKED"
fi
exit 0
Extrait de prerm:
#!/bin/sh
set -e
#echo "Stage prerm" $1
exit 0
Extrait de postrm:
#!/bin/sh
set -e
#echo "postrm" $1
exit 0
Merci, -Sandeep
J'ai publié un article sur la création de vos propres paquets Debian à l'adresse:
http://www.leaseweblabs.com/2013/06/creating-custom-debian-packages/
Pour vous sauver de certaines lectures, la structure de répertoires devrait ressembler à ceci:
Assurez-vous que les autorisations et les emplacements sont comme ceci, et cela devrait fonctionner :)
J'ai résolu le problème en tapant
echo PURGE | debconf-communicate <packagename>
Cette commande efface toutes les sélections de la base de données debconf
. J'ai réalisé que lorsque les sélections présentes dans la base de données debconf
, le programme d'installation du package n'exécute jamais les commandes d'entrée dans le fichier config
. Par conséquent, je mets la commande purge
dans le fichier postrm
.