Scroll to navigation

DEBCONF.CONF(5) File Formats Manual DEBCONF.CONF(5)

NOM

debconf.conf - fichier de configuration de debconf

DESCRIPTION

Debconf est un système de configuration pour les paquetsDebian. /etc/debconf.conf et ~/.debconfrc sont les fichiers de configurationutilisés pour déterminer la base de données qui doit être utilisée. Cesbases de données sont utilisées pour garder deux types d'informations ; lesdonnées dynamiques de configuration que l'utilisateur a définies et lesdonnées statiques des questions. Debconf offre une interface souple etextensible 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érentesfaç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 parun caractère dièse (« # »), sont ignorées.

Le premier paragraphe du fichier est spécial et est utilisé pour configurerl'ensemble de debconf. Ce premier paragraphe requiert deux champs :

Indique le nom de la base de données où prendre les données deconfiguration.
Indiquer le nom de la base de données à utiliser pour le cache desquestions.

Champs additionnels pouvant être ajoutés :

L'interface utilisée par debconf, remplace toute interface indiquée dans labase de données de debconf.
La priorité utilisée par debconf, remplace toute priorité indiquée dans labase de données de debconf.
L'adresse électronique à laquelle Debconf envoie un courriel pour s'assurerque l'administrateur a bien vu une remarque importante. Par défaut « root »,mais ce peut être une adresse électronique valable où envoyer lecourriel. 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 variabled'environnement DEBCONF_ADMIN_EMAIL.
Si ce champ existe, debconf affichera alors les informations de débogage surla sortie d'erreur standard. La valeur fixée peut être quelque chose comme« user », « developer », « db » ou encore une expressionrationnelle. Généralement, plutôt que de le configurer de manière figée dansun fichier de configuration, vous voudrez activer le débogagetemporairement, la variable d'environnement DEBCONF_DEBUG peut alors êtreutilisée à la place pour accomplir ce débogage.
S'il existe, debconf n'affichera aucun avertissement. Il peut être annulé àla volée par la variable d'environnement DEBCONF_NOWARNINGS.
Debconf enregistre des informations de débogage lors de son fonctionnement,dans le fichier syslog. La valeur donnée sert à contrôler ce qui estenregistré dans le journal. Voir plus haut Debug pour une explication desvaleurs qui peuvent être choisies pour contrôler ce qui est enregistré dansle journal.
S'il est fixé à « true », certaines interfaces debconf utiliseront un moded'affichage concis et spécial qui affiche le moins d'informationspossible. Par défaut à « false ». Le mode concis peut être choisitemporairement 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. Unparagraphe de base de données commence par nommer la base de données :
Name: configdb

Ensuite, on indique le pilote à utiliser pourcette 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 aufonctionnement correct de debconf en spécifiant qu'elle n'est pas requise. Celamettra 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, debconfn'y écrira alors rien.
Readonly: true

Vous pouvez aussi limiter le type de données pouvant aller dans la base dedonnées avec les lignes Accept- et Reject- ; voir la section CONTRÔLESD'ACCÈS plus bas.

Le reste de chaque paragraphe d'une base de données est utilisé pour fournirune configuration spécifique à ce pilote. Par exemple, le pilote Text a besoinde savoir dans quel répertoire mettre la base de données, vous devriez doncentrer :
Filename: /var/cache/debconf/config.dat

PILOTES

Il y a de nombreux pilotes disponibles et on peut en écrire d'autres sansgrande difficulté. Les pilotes sont répartis en deux types. Il y a d'abordles pilotes réels -- pilotes qui lisent et stockent réellement les donnéesdans quelque sorte de base de données, qui peut se trouver sur le système defichiers local ou sur un système distant. Il y a ensuite les méta-pilotesqui associent différents pilotes pour former des systèmes plusintéressants. Commençons par les premiers.

Ce pilote permet à debconf de stocker une base de données complète dans unsimple fichier texte. Cela facilite l'archivage, le transfert entre lesmachines et l'édition. C'est l'un des formats de base de données les pluscompacts en terme d'espace disque utilisé. C'est aussi l'un des formats lesplus lents.

Parmi les inconvénients, le fichier doit être lu en entier à chaque fois quedebconf démarre ; de même, le sauvegarder est lent.

Pour ce pilote, les points suivants sont configurables.

Fichier à utiliser comme base de données. Ce champ est obligatoire.
Les permissions du fichier à créer s'il n'existe pas. Elles sont par défautmises à 600 parce que, dans certains circonstances, le fichier peut contenirdes mots de passe.
Format du fichier. Voir plus bas la section FORMATS. Le format par défautest du type défini par la RFC-822.
Indique si une sauvegarde de l'ancien fichier doit être effectuée avant dele modifier. Par défaut à « true » (vrai).

Voici un exemple de paragraphe configurant une base de données qui utilisece pilote :


Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat

Ce pilote permet à debconf de stocker les données dans une structurehiérarchisée de type répertoire. Les noms des différents questionnaires etquestions debconf sont utilisés pour former des répertoires contenant lesfichiers. 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 desauvegarde. C'est lui qui utilise le plus d'espace, car tous les petitsfichiers et sous-répertoires occupent beaucoup de place.

Pour ce pilote, les points suivants sont configurables.

Répertoire où sont déposés les fichiers. Obligatoire.
Extension à ajouter aux noms de fichiers. Ce doit être une chaîne decaractères non vide ; par défaut, sa valeur est « .dat »
Format du fichier. Voir plus bas la section FORMATS. Le format par défautest du type défini par la RFC-822.
Indique si une sauvegarde de l'ancien fichier doit être effectuée avant dele modifier. Par défaut à « true » (vrai).

Voici un exemple de paragraphe configurant une base de données qui utilisece pilote :


Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt

Ce pilote est un compromis entre les bases de données File et DirTree. Ilutilise un répertoire dans lequel il y a (approximativement) un fichier parpaquet qui utilise debconf. C'est assez rapide, bien qu'utilisant un peuplus 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 :

Les permissions des fichiers créés. Par défaut à 600 parce que les fichierspeuvent, dans certaines circonstances, contenir des mots de passe.

Voici un exemple de paragraphe configurant une base de données qui utilisece pilote :


Name: mydb
Driver: PackageDir
Directory: /var/cache/debconf/mydb

ATTENTION : Ce pilote est actuellement expérimental. Utilisez-le avecprécaution.

Ce pilote accède à un répertoire LDAP pour les données de configuration dedebconf. Les répertoires LDAP doivent être en lecture seule, à cause de lanature de la bête. C'est parce que plusieurs accès peuvent avoir lieu et ilvaut mieux, pour la cohérence des données, que personne n'essaie de lesmodifier lorsque cela arrive. Bien sûr, on peut donner la possibilité demodifier ces répertoires lorsque vous voulez mettre à jour les données deconfiguration.

Pour plus d'informations à propos de la configuration d'un serveur LDAP pourdebconf, veuillez lire /usr/share/doc/debconf-doc/README.LDAP (du paquetdebconf-doc).

Pour utiliser ce pilote, vous devez avoir installé le paquetlibnet-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 distanteen 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.

Nom d'hôte ou adresse IP d'un serveur LDAP auquel se connecter.
Port de connexion au serveur LDAP. Si aucun n'est donné, le port par défautest utilisé.
Le DN sous lequel tous les points de la configuration seront stockés. Chaquepoint de configuration est supposé exister dans un DN de cn=<itemname>,<Base DN>. Si cette structure n'est pas respectée, rien nefonctionne.
DN à attacher au répertoire. Un lien anonyme sera utilisé s'il n'y en aaucun de spécifié.
Mot de passe à utiliser dans un attachement authentifié (utilisé avecbinddn, 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 liaisonanonyme devrait être suffisante dans la plupart des cas pour un accès enlecture 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 dedebconf.
Activer l'accès aux entrées individuelles de l'annuaire LDAP au lieu detoutes les télécharger au début. Cela est très utile si vous voulez analyserdes requêtes debconf depuis les journaux de LDAP. Cette option permet aussid'écrire du code de gestion sur le serveur LDAP.

Notez que lorsque cette option est activée, la connexion au serveur LDAPreste active durant toute l'exécution de debconf. Ce comportement estdifférent lorsque vous télécharger toutes les données d'un seul bloc cardeux connexions au serveur LDAP sont réalisées ; une au début pour récupérertoutes les données et une à la fin pour sauvegarder les éventuellesmodifications.

Voici un exemple de paragraphe configurant une base de données qui utilisece pilote, en supposant que la base de données distante est sur exemple.comet 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 etpeut être modifiée :


Name: ldapdb
Driver: LDAP
Server: localhost
BaseDN: cn=debconf,dc=domain,dc=com
BindPasswd: secret
KeyByKey: 1

Ce pilote spécial lit et écrit la base de données depuis l'entrée/sortiestandard. Ça peut être utile pour les personnes qui ont des besoinsspécifiques.

Pour ce pilote, les points suivants sont configurables.

Format à lire et écrire. Voir la section FORMATS plus bas. Par défaut, ilutilise un format du type défini par la RFC-822.
Numéro du descripteur de fichier à lire. La lecture se fait par défautdepuis l'entrée standard. S'il est fixé à « none », la base de données nelira aucune donnée au démarrage.
Numéro du descripteur de fichier à écrire. L'écriture se fait par défaut surla sortie standard. S'il est fixé à « none », la base de données va êtredétruite lors de l'arrêt.

C'est tout pour les pilotes réels, nous allons à présent voir lesméta-pilotes.

Ce pilote superpose plusieurs autres bases de données (de tout type) etpermet l'accès à celles-ci comme si elles n'en formaient qu'uneseule. Lorsque debconf demande une valeur, la première base dans la pile quicontient cette valeur la retourne. Si debconf écrit quelque chose dans labase de données, l'écriture se fait normalement dans le premier pilote de lapile qui contient l'élément modifié par debconf ; s'il n'y en a pas, lenouvel élément est ajouté à la première base de données de la pile surlaquelle on peut écrire.

Les choses deviennent plus intéressantes si l'une des bases de données de lapile 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. Debconfveut changer un élément et cet élément n'est présent que dans tata, qui esten lecture seule. Le pilote de pile est assez malin pour réaliser que ça nefonctionne pas, il copiera l'élément de tata vers titi et l'écriture auralieu dans titi. Maintenant l'élément de tata est caché par celui de titi etil ne sera plus visible de debconf.

Ce genre de choses est particulièrement utile si vous voulez faire pointerbeaucoup 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'onajoute des contrôles d'accès, les piles permettent de faire beaucoupd'autres choses intéressantes, comme rediriger tous les mots de passe versune base de données pendant qu'une autre base de données en dessous s'occupede tout le reste.

Un seul élément de configuration est nécessaire pour configurer une pile :

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é vraimenttesté. Utilisez-le à vos risques et périls.

Backup

Ce pilote transmet toutes les requêtes vers un autre pilote. Mais il copieaussi toutes les requêtes d'écriture vers un pilote de sauvegarde.

Pour configurer ce pilote, vous devez spécifier les champs suivants :

Base de données à lire et dans laquelle écrire.
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, affichanttoutes les informations de débogage à propos des requêtes et de leursrésultats.

Pour configurer ce pilote, vous devez spécifier les champs suivants :

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 deschamps pour indiquer les contrôles d'accès. Vous pouvez spécifier, parexemple, qu'une base de données n'accepte que les mots de passe ou fairequ'une base de données n'accepte que les choses ayant dans leur nom« toto ».

Comme on l'a mentionné, ce contrôle d'accès, s'il est fixé à « true », rendune base de données accessible uniquement en lecture seule. Debconf en lirales valeurs mais n'y écrira jamais rien.
Le texte de ce champ est une expression rationnelle compatible Perl(« PCRE ») qui correspond aux noms des éléments requis de la base dedonnées. La base de données ne permettra à debconf d'y accéder ou de lamodifier que si le nom d'un élément concorde avec l'expression rationnelle.
Comme Accept-Name, excepté que tout élément correspondant à cette expressionrationnelle sera rejeté.
Autre expression rationnelle, correspondant au type de l'élément auquel onaccédera. L'accès ne sera accordé que si le type correspond à l'expressionrationnelle.
Comme Accept-Type, excepté que tout type correspondant à cette expressionrationnelle sera rejeté.

FORMATS

Quelques pilotes utilisent des modules de format pour contrôler le formatréel d'enregistrement des bases de données sur le disque. Ces formats sontactuellement gérés :

822
C'est un format de fichier vaguement basé sur le format de la RFC-822 pourles entêtes de courriel. Des formats similaires sont utilisés partout dansDebian ; 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 variablesera 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 laligne avant le deux-points). Cependant, les valeurs sont sensibles à lacasse.

AMÉLIORATIONS PRÉVUES

Autres pilotes et formats. Voici quelques idées : un pilote SQL, avec lapossibilité d'accéder à une base de données distante ; un pilote DHCP, quirend disponible certaines choses spécifiques comme le nom d'hôte, l'adresseIP et les serveurs DNS ; un pilote qui prend ses valeurs dans les champs TXTdes enregistrements DNS publics ; un format compatible avec la sortie decdebconf ; un pilote d'annulation, qui peut annuler la valeur d'un champ oules 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 surle paquet debconf.