NOM
debconf.conf - fichier de configuration de debconf
Debconf est un système de configuration pour les paquets Debian.
/etc/debconf.conf et ~/.debconfrc sont les fichiers de configuration
utilisés pour déterminer la base de données qui doit être utilisée. Ces
bases de données sont utilisées pour garder deux types d’informations ;
les données dynamiques de configuration que l’utilisateur a définies et
les données statiques des questions. Debconf offre une interface souple
et extensible pour la gestion des bases de données. De nouveaux pilotes
peuvent être créés sans effort et les pilotes peuvent être combinés de
différentes façons.
SYNOPSIS
# Ceci est un exemple de fichier de configuration
# suffisant pour utiliser debconf.
Config: configdb
Templates: templatedb
Name: configdb
Driver: File
Filename: /var/cache/debconf/config.dat
Name: templatedb
Driver: File
Mode: 644
Filename: /var/cache/debconf/templates.dat
FORMAT DE FICHIER
Le format de ce fichier est une suite de paragraphes, chacun d’eux
séparé par au moins une ligne blanche. Les lignes de commentaires,
commençant par un caractère dièse (« # »), sont ignorées.
Le premier paragraphe du fichier est spécial et est utilisé pour
configurer l’ensemble de debconf. Ce premier paragraphe requiert deux
champs :
Config Indique le nom de la base de données où prendre les
données de configuration.
Templates
Indiquer le nom de la base de données à utiliser pour le
cache des questions.
Champs additionnels pouvant être ajoutés :
Frontend
L’interface utilisée par debconf, remplace toute
interface indiquée dans la base de données de debconf.
Priority
La priorité utilisée par debconf, remplace toute priorité
indiquée dans la base de données de debconf.
Admin-Email
L’adresse électronique à laquelle Debconf envoie un
courriel pour s’assurer que l’administrateur a bien vu
une remarque importante. Par défaut « root », mais ce
peut être une adresse électronique valable où envoyer le
courriel. Si vous préférez que debconf ne vous envoie pas
de courriel, spécifiez une adresse vide. Cela peut être
annulé à la volée par la variable d’environnement
DEBCONF_ADMIN_EMAIL.
Debug Si ce champ existe, debconf affichera alors les
informations de débogage sur la sortie d’erreur standard.
La valeur fixée peut être quelque chose comme « user »,
« developer », « db » ou encore une expression
rationnelle. Généralement, plutôt que de le configurer de
manière figée dans un fichier de configuration, vous
voudrez activer le débogage temporairement, la variable
d’environnement DEBCONF_DEBUG peut alors être utilisée à
la place pour accomplir ce débogage.
NoWarnings
S’il existe, debconf n’affichera aucun avertissement. Il
peut être annulé à la volée par la variable
d’environnement DEBCONF_NOWARNINGS.
Log Debconf enregistre des informations de débogage lors de
son fonctionnement, dans le fichier syslog. La valeur
donnée sert à contrôler ce qui est enregistré dans le
journal. Voir plus haut Debug pour une explication des
valeurs qui peuvent être choisies pour contrôler ce qui
est enregistré dans le journal.
Terse S’il est fixé à « true », certaines interfaces debconf
utiliseront un mode d’affichage concis et spécial qui
affiche le moins d’informations possible. Par défaut à
« false ». Le mode concis peut être choisi temporairement
grâce à la variable d’environnement DEBCONF_TERSE.
Par exemple, le premier paragraphe d’un fichier devrait ressembler à
ça :
Config: configdb
Templates: templatedb
Chaque paragraphe restant dans le fichier configure une base de
données. Un paragraphe de base de données commence par nommer la base
de données :
Name: configdb
Ensuite, on indique le pilote à utiliser pour cette base de données.
Pour avoir des informations sur les pilotes disponibles, voir la
section DRIVER plus bas.
Driver: File
Vous pouvez indiquer que la base de données n’est pas essentielle au
fonctionnement correct de debconf en spécifiant qu’elle n’est pas
requise. Cela mettra le désordre dans debconf en cas de défaillance
quelconque de la base de données.
Required: false
Vous pouvez marquer une base de données comme étant en lecture seule,
debconf n’y écrira alors rien.
Readonly: true
Vous pouvez aussi limiter le type de données pouvant aller dans la base
de données avec les lignes Accept- et Reject- ; voir la section
CONTRÔLES D’ACCÈS plus bas.
Le reste de chaque paragraphe d’une base de données est utilisé pour
fournir une configuration spécifique à ce pilote. Par exemple, le
pilote Text a besoin de savoir dans quel répertoire mettre la base de
données, vous devriez donc entrer :
Filename: /var/cache/debconf/config.dat
PILOTES
Il y a de nombreux pilotes disponibles et on peut en écrire d’autres
sans grande difficulté. Les pilotes sont répartis en deux types. Il y a
d’abord les pilotes réels -- pilotes qui lisent et stockent réellement
les données dans quelque sorte de base de données, qui peut se trouver
sur le système de fichiers local ou sur un système distant. Il y a
ensuite les méta-pilotes qui associent différents pilotes pour former
des systèmes plus intéressants. Commençons par les premiers.
File
Ce pilote permet à debconf de stocker une base de données
complète dans un simple fichier texte. Cela facilite
l’archivage, le transfert entre les machines et
l’édition. C’est l’un des formats de base de données les
plus compacts en terme d’espace disque utilisé. C’est
aussi l’un des formats les plus lents.
Parmi les inconvénients, le fichier doit être lu en
entier à chaque fois que debconf démarre ; de même, le
sauvegarder est lent.
Pour ce pilote, les points suivants sont configurables.
Filename
Fichier à utiliser comme base de données.
Ce champ est obligatoire.
Mode Les permissions du fichier à créer s’il
n’existe pas. Elles sont par défaut mises
à 600 parce que, dans certains
circonstances, le fichier peut contenir
des mots de passe.
Format Format du fichier. Voir plus bas la
section FORMATS. Le format par défaut est
du type défini par la RFC-822.
Backup Indique si une sauvegarde de l’ancien
fichier doit être effectuée avant de le
modifier. Par défaut à « true » (vrai).
Voici un exemple de paragraphe configurant une base de
données qui utilise ce pilote :
Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat
DirTree
Ce pilote permet à debconf de stocker les données dans
une structure hiérarchisée de type répertoire. Les noms
des différents questionnaires et questions debconf sont
utilisés pour former des répertoires contenant les
fichiers. Ce format de base de données est le plus facile
à consulter et à modifier à la main. Il a une très bonne
vitesse de chargement et de sauvegarde. C’est lui qui
utilise le plus d’espace, car tous les petits fichiers et
sous-répertoires occupent beaucoup de place.
Pour ce pilote, les points suivants sont configurables.
Directory
Répertoire où sont déposés les fichiers.
Obligatoire.
Extension
Extension à ajouter aux noms de fichiers.
Ce doit être une chaîne de caractères non
vide ; par défaut, sa valeur est « .dat »
Format Format du fichier. Voir plus bas la
section FORMATS. Le format par défaut est
du type défini par la RFC-822.
Backup Indique si une sauvegarde de l’ancien
fichier doit être effectuée avant de le
modifier. Par défaut à « true » (vrai).
Voici un exemple de paragraphe configurant une base de
données qui utilise ce pilote :
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt
PackageDir
Ce pilote est un compromis entre les bases de données
File et DirTree. Il utilise un répertoire dans lequel il
y a (approximativement) un fichier par paquet qui utilise
debconf. C’est assez rapide, bien qu’utilisant un peu
plus d’espace que le pilote de base de données File.
Ce pilote est configurable de la même manière que le
pilote DirTree, plus :
Mode Les permissions des fichiers créés. Par défaut à
600 parce que les fichiers peuvent, dans certaines
circonstances, contenir des mots de passe.
Voici un exemple de paragraphe configurant une base de
données qui utilise ce pilote :
Name: mydb
Driver: PackageDir
Directory: /var/cache/debconf/mydb
LDAP
ATTENTION : Ce pilote est actuellement expérimental.
Utilisez-le avec précaution.
Ce pilote accède à un répertoire LDAP pour les données de
configuration de debconf. Les répertoires LDAP doivent
être en lecture seule, à cause de la nature de la bête.
C’est parce que plusieurs accès peuvent avoir lieu et il
vaut mieux, pour la cohérence des données, que personne
n’essaie de les modifier lorsque cela arrive. Bien sûr,
on peut donner la possibilité de modifier ces répertoires
lorsque vous voulez mettre à jour les données de
configuration.
Pour plus d’informations à propos de la configuration
d’un serveur LDAP pour debconf, veuillez lire
/usr/share/doc/debconf-doc/README.LDAP (du paquet
debconf-doc).
Pour utiliser ce pilote, vous devez avoir installé le
paquet libnet-ldap-perl. Debconf suggère ce paquet mais
ne dépend pas de lui.
Veuillez être attentif à ce qu’implique une base de
données debconf distante en ce qui concerne la sécurité.
Ce n’est pas une chose très sûre à faire à moins que vous
fassiez confiance à la source et au réseau intervenant.
Pour ce pilote, les points suivants sont configurables.
server Nom d’hôte ou adresse IP d’un serveur LDAP
auquel se connecter.
port Port de connexion au serveur LDAP. Si
aucun n’est donné, le port par défaut est
utilisé.
basedn Le DN sous lequel tous les points de la
configuration seront stockés. Chaque point
de configuration est supposé exister dans
un DN de cn=<item name>,<Base DN>. Si
cette structure n’est pas respectée, rien
ne fonctionne.
binddn DN à attacher au répertoire. Un lien
anonyme sera utilisé s’il n’y en a aucun
de spécifié.
bindpasswd
Mot de passe à utiliser dans un
attachement authentifié (utilisé avec
binddn, ci-dessus). Si ce n’est pas
spécifié, un lien anonyme sera utilisé.
Cette option ne doit pas être utilisée
dans le cas général. La liaison anonyme
devrait être suffisante dans la plupart
des cas pour un accès en lecture seule.
Spécifier un DN lié à un mot de passe
devrait être réservé pour les cas où vous
souhaitez mettre à jour vos données de
configuration de debconf.
keybykey
Activer l’accès aux entrées individuelles
de l’annuaire LDAP au lieu de toutes les
télécharger au début. Cela est très utile
si vous voulez analyser des requêtes
debconf depuis les journaux de LDAP. Cette
option permet aussi d’écrire du code de
gestion sur le serveur LDAP.
Notez que lorsque cette option est
activée, la connexion au serveur LDAP
reste active durant toute l’exécution de
debconf. Ce comportement est différent
lorsque vous télécharger toutes les
données d’un seul bloc car deux connexions
au serveur LDAP sont réalisées ; une au
début pour récupérer toutes les données et
une à la fin pour sauvegarder les
éventuelles modifications.
Voici un exemple de paragraphe configurant une base de
données qui utilise ce pilote, en supposant que la base
de données distante est sur exemple.com et qu’on peut y
accéder anonymement :
Name: ldapdb
Driver: LDAP
Readonly: true
Server: example.com
BaseDN: cn=debconf,dc=example,dc=com
KeyByKey: 0
Autre exemple, cette fois la base de données LDAP est sur
l’hôte local et peut être modifiée :
Name: ldapdb
Driver: LDAP
Server: localhost
BaseDN: cn=debconf,dc=domain,dc=com
BindPasswd: secret
KeyByKey: 1
Pipe
Ce pilote spécial lit et écrit la base de données depuis
l’entrée/sortie standard. Ça peut être utile pour les
personnes qui ont des besoins spécifiques.
Pour ce pilote, les points suivants sont configurables.
Format Format à lire et écrire. Voir la section
FORMATS plus bas. Par défaut, il utilise
un format du type défini par la RFC-822.
Infd Numéro du descripteur de fichier à lire.
La lecture se fait par défaut depuis
l’entrée standard. S’il est fixé à
« none », la base de données ne lira
aucune donnée au démarrage.
Outfd Numéro du descripteur de fichier à écrire.
L’écriture se fait par défaut sur la
sortie standard. S’il est fixé à « none »,
la base de données va être détruite lors
de l’arrêt.
C’est tout pour les pilotes réels, nous allons à présent voir
les méta-pilotes.
Stack
Ce pilote superpose plusieurs autres bases de données (de
tout type) et permet l’accès à celles-ci comme si elles
n’en formaient qu’une seule. Lorsque debconf demande une
valeur, la première base dans la pile qui contient cette
valeur la retourne. Si debconf écrit quelque chose dans
la base de données, l’écriture se fait normalement dans
le premier pilote de la pile qui contient l’élément
modifié par debconf ; s’il n’y en a pas, le nouvel
élément est ajouté à la première base de données de la
pile sur laquelle on peut écrire.
Les choses deviennent plus intéressantes si l’une des
bases de données de la pile est en lecture seule.
Considérez une pile des bases de données toto, titi et
tata, où toto et tata sont toutes les deux en lecture
seule. Debconf veut changer un élément et cet élément
n’est présent que dans tata, qui est en lecture seule. Le
pilote de pile est assez malin pour réaliser que ça ne
fonctionne pas, il copiera l’élément de tata vers titi et
l’écriture aura lieu dans titi. Maintenant l’élément de
tata est caché par celui de titi et il ne sera plus
visible de debconf.
Ce genre de choses est particulièrement utile si vous
voulez faire pointer beaucoup de systèmes vers une base
de données centrale en lecture seule, tout en permettant
la réécriture des éléments sur chaque système. Si l’on
ajoute des contrôles d’accès, les piles permettent de
faire beaucoup d’autres choses intéressantes, comme
rediriger tous les mots de passe vers une base de données
pendant qu’une autre base de données en dessous s’occupe
de tout le reste.
Un seul élément de configuration est nécessaire pour
configurer une pile :
Stack C’est là que vous spécifiez une liste
d’autres bases de données, par nom, pour
dire de quoi est composée la pile.
Par exemple :
Name: megadb
Driver: stack
Stack: passworddb, configdb, companydb
ATTENTION : le pilote de piles n’a pas encore été
vraiment testé. Utilisez-le à vos risques et périls.
Backup
Ce pilote transmet toutes les requêtes vers un autre
pilote. Mais il copie aussi toutes les requêtes
d’écriture vers un pilote de sauvegarde.
Pour configurer ce pilote, vous devez spécifier les
champs suivants :
Db Base de données à lire et dans laquelle
écrire.
Backupdb
Nom de la base de données où envoyer les
copies à écrire.
Par exemple :
Name: backup
Driver: Backup
Db: mydb
Backupdb: mybackupdb
Debug
Ce pilote transmet toutes les requêtes vers un autre
pilote, affichant toutes les informations de débogage à
propos des requêtes et de leurs résultats.
Pour configurer ce pilote, vous devez spécifier les
champs suivants :
Db Base de données à lire et dans laquelle
écrire.
CONTRÔLES D’ACCÈS
Quand vous configurez une base de données, vous pouvez aussi
utiliser des champs pour indiquer les contrôles d’accès. Vous
pouvez spécifier, par exemple, qu’une base de données n’accepte
que les mots de passe ou faire qu’une base de données n’accepte
que les choses ayant dans leur nom « toto ».
Readonly
Comme on l’a mentionné, ce contrôle d’accès, s’il est
fixé à « true », rend une base de données accessible
uniquement en lecture seule. Debconf en lira les valeurs
mais n’y écrira jamais rien.
Accept-Name
Le texte de ce champ est une expression rationnelle
compatible Perl (« PCRE ») qui correspond aux noms des
éléments requis de la base de données. La base de données
ne permettra à debconf d’y accéder ou de la modifier que
si le nom d’un élément concorde avec l’expression
rationnelle.
Reject-Name
Comme Accept-Name, excepté que tout élément correspondant
à cette expression rationnelle sera rejeté.
Accept-Type
Autre expression rationnelle, correspondant au type de
l’élément auquel on accédera. L’accès ne sera accordé que
si le type correspond à l’expression rationnelle.
Reject-Type
Comme Accept-Type, excepté que tout type correspondant à
cette expression rationnelle sera rejeté.
FORMATS
Quelques pilotes utilisent des modules de format pour contrôler
le format réel d’enregistrement des bases de données sur le
disque. Ces formats sont actuellement gérés :
822 C’est un format de fichier vaguement basé sur le format
de la RFC-822 pour les entêtes de courriel. Des formats
similaires sont utilisés partout dans Debian ; dans le
fichier d’état de dpkg, et autres.
EXEMPLE
Voici un exemple de fichier debconf.conf parmi les plus
compliqués.
# Ce paragraphe est utilisé pour la
# configuration générale de debconf.
Config: stack
Templates: templates
Log: developer
Debug: developer
# Ma base de données locale.
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/config
# C’est une autre base de données que
# j’utilise pour ne garder que la
# configuration de mon serveur X.
Name: X
Driver: File
Filename: /etc/X11/debconf.dat
Mode: 644
# Il est difficile de savoir quelles
# sont le questions concernent X ; il faudrait
# utiliser une arborescence plus profonde
# pour que je puisse n’accepter que les
# correspondances avec ^X/
# Passons.
Accept-Name: xserver|xfree86|xbase
# C’est la base de données générale de notre
# société, en lecture seule (pour moi !).
Name: company
Driver: LDAP
Server: debconf.toto.com
BaseDN: cn=debconf,dc=toto,dc=com
BindDN: uid=admin,dc=toto,dc=com
BindPasswd: secret
Readonly: true
# Je ne veux pas que les mots de passe traînent par là.
Reject-Type: password
# Si cette base de données n’est pas disponible
# pour quelque raison que ce soit, on continue.
Required: false
# J’utilise cette base de données pour
# conserver les mots de passe en sûreté.
Name: passwords
Driver: File
Filename: /etc/debconf/passwords
Mode: 600
Accept-Type: password
# Rassemblons toutes ces bases
# de données dans une pile.
Name: stack
Driver: Stack
Stack: passwords, X, mydb, company
# Donc, tous les mots de passe vont dans la
# base de données passwords. La plupart des objets
# concernant la configuration de X vont dans la
# base de données X, et tout le reste va dans ma
# base de données principale. Les valeurs sont
# recherchées tour à tour dans chacune de ces bases
# de données et si une valeur particulière n’est trouvée
# nulle part, elle est recherchée dans la base de
# données LDAP au niveau de la société (à moins que ce ne
# soit un mot de passe).
# Une base de données est aussi utilisée
# pour conserver les questionnaires. Nous
# n’avons pas besoin d’y mettre autant de fantaisie.
Name: templates
Driver: File
Mode: 644
Format: 822
Filename: /var/cache/debconf/templates
NOTES
Si vous utilisez dans ce fichier quelque chose comme ${HOME},
cette variable sera remplacée par la valeur de la variable
d’environnement nommée ainsi.
Les variables d’environnement peuvent aussi être utilisées pour
remplacer à la volée les bases de données utilisées, voir
debconf(7).
Il n’est pas tenu compte de la casse des noms des champs (la
partie de la ligne avant le deux-points). Cependant, les valeurs
sont sensibles à la casse.
AMÉLIORATIONS PRÉVUES
Autres pilotes et formats. Voici quelques idées : un pilote SQL,
avec la possibilité d’accéder à une base de données distante ;
un pilote DHCP, qui rend disponible certaines choses spécifiques
comme le nom d’hôte, l’adresse IP et les serveurs DNS ; un
pilote qui prend ses valeurs dans les champs TXT des
enregistrements DNS publics ; un format compatible avec la
sortie de cdebconf ; un pilote d’annulation, qui peut annuler la
valeur d’un champ ou les drapeaux de toutes les requêtes qui lui
sont adressées.
FICHIERS
/etc/debconf.conf
~/.debconfrc
VOIR AUSSI
debconf(7)
AUTEUR
Joey Hess <joeyh@debian.org>
TRADUCTION
Julien Louis <ptitlouis@sysif.net>, 2005
Cyril Brulebois <kibi@debian.org>, 2006
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue
sur le paquet debconf.