Man page - debconf(7)

Packages contains this manual

Available languages:

en fr es pt ru ro de

Manual

DEBCONF

NOM
DESCRIPTION
Préconfiguration des paquets
Reconfiguration des paquets
Interfaces
Priorités
Base de données principale
Installation des paquets sans surveillance
Développer pour debconf
ENVIRONNEMENT
BOGUES
VOIR AUSSI
AUTEUR
TRADUCTION

NOM

debconf - systĂšme de configuration des paquets Debian

DESCRIPTION

Debconf est un systÚme de configuration pour les paquets Debian. Il existe une commande rarement utilisée nommée debconf, documentée dans debconf (1)

Debconf fournit une interface cohĂ©rente pour la configuration des paquets et donne Ă  l’utilisateur le choix entre plusieurs interfaces. Il peut configurer des paquets avant qu’ils ne soient installĂ©s, ce qui permet Ă  des installations et des mises Ă  niveau importantes de demander toutes les informations nĂ©cessaires au prĂ©alable, et de vous laisser faire ce que vous voulez pendant que les paquets s’installent. Debconf vous permet, si vous ĂȘtes pressĂ©, de sauter les questions les moins importantes au moment de l’installation d’un paquet (en y revenant plus tard).

Préconfiguration des paquets

Debconf peut configurer les paquets avant mĂȘme qu’ils ne soient installĂ©s sur votre systĂšme. Ainsi, toutes les questions des paquets vous seront posĂ©es au dĂ©but de l’installation ce qui permettra Ă  l’installation de continuer pendant que vous ĂȘtes en train de prendre un cafĂ©.

Si vous utilisez apt (version 0.5 ou supérieure) et que vous avez installé apt-utils, chaque paquet installé par apt sera automatiquement préconfiguré. Ceci est contrÎlé via /etc/apt/apt.conf.d/70debconf

Quelquefois vous voudrez prĂ©configurer un paquet vous-mĂȘme, quand vous l’installez sans apt. Vous pouvez utiliser dpkg-preconfigure (8) pour ce faire. Donnez-lui seulement le nom du paquet que vous voulez prĂ©configurer. Vous aurez besoin d’installer apt-utils pour que cela fonctionne.

Reconfiguration des paquets

Supposons que vous ayez installĂ© un paquet et que vous ayez rĂ©pondu aux questions de debconf, mais maintenant que vous l’utilisez de temps en temps, vous rĂ©alisiez que vous voulez revenir sur quelques-unes de vos rĂ©ponses et les changer. Autrefois, il fallait faire une rĂ©installation quand vous Ă©tiez dans cette situation ; mais quand vous rĂ©installez le paquet, debconf semble se souvenir que vous avez dĂ©jĂ  rĂ©pondu aux questions et ne vous les pose pas Ă  nouveau (c’est voulu).

Heureusement, debconf facilite la reconfiguration des paquets qui l’utilisent. Supposez que vous voulez reconfigurer debconf lui-mĂȘme. ExĂ©cutez simplement, en tant que superutilisateur :
dpkg-reconfigure debconf

Il vous posera toutes les questions que vous avez vues lors de la premiĂšre installation de debconf. Il peut aussi vous poser d’autres questions, puisqu’il vous pose mĂȘme les questions de prioritĂ© basse qui ont pu ĂȘtre sautĂ©es quand le paquet a Ă©tĂ© installĂ©. Vous pouvez aussi bien l’utiliser avec n’importe quel autre paquet utilisant debconf.

Interfaces

Une fonctionnalitĂ© remarquable de debconf est qu’il possĂšde plusieurs interfaces et l’on peut en changer Ă  loisir. Voici les interfaces disponibles :

dialog

Interface par défaut : elle utilise les programmes whiptail (1) ou dialog (1) pour afficher les questions. Elle fonctionne en mode texte.

readline

C’est l’interface la plus traditionnelle. Elle ressemble Ă  la configuration Debian classique : une sĂ©rie de questions, imprimĂ©es sur la console en mode texte et des invites affichĂ©es avec la bibliothĂšque readline. Elle reconnaĂźt mĂȘme le complĂštement avec « tab ». Le paquet libterm-readline-gnu-perl est fortement recommandĂ© si vous choisissez d’utiliser cette interface ; le module readline par dĂ©faut ne gĂšre pas les invites de saisie avec des valeurs par dĂ©faut. Pour utiliser cette interface, vous aurez besoin d’installer le paquet perl-modules.

Cette interface a quelques commandes spéciales. « Page préc. » (ou ctrl-u) reviendra à la question précédente (si cela est géré par le paquet utilisant debconf) et « Page suiv. » (ou ctrl-v) passera à la question suivante.

C’est la meilleure interface pour les administrateurs à distance travaillant par une connexion lente, ou pour ceux qui sont à l’aise avec Unix.

noninteractive

C’est l’anti-interface. Elle n’interagit jamais avec vous et utilise les rĂ©ponses par dĂ©faut pour toutes les questions. Elle enverra parfois un courriel Ă  root avec les messages que le paquet voulait afficher, mais c’est tout ! À part ça, elle est silencieuse et discrĂšte, c’est une interface parfaite pour des installations automatiques. Si vous utilisez cette interface et si vous voulez que les rĂ©ponses aux questions ne soient pas celles par dĂ©faut, vous aurez besoin de renseigner d’abord la base de donnĂ©es de debconf ; pour plus de dĂ©tails, consultez la section ci-dessous sur l’installation de paquets sans surveillance.

gnome

C’est une interface graphique moderne utilisant les bibliothĂšques de gtk et de GNOME. Bien sĂ»r, elle nĂ©cessite une variable DISPLAY valable pour fonctionner ; si elle ne peut pas fonctionner, debconf se rabattra sur d’autres interfaces. Remarquez que cette interface nĂ©cessite que vous ayez installĂ© le paquet libgtk3-perl.

kde

Cette interface fournit un outil graphique moderne basĂ© sur la plateforme KDE. Vous aurez bien sĂ»r besoin d’une variable DISPLAY pour utiliser cette interface et vous devez installer le paquet debconf-kde-helper. L’interface se rabattra sur l’interface dialog si un des prĂ©requis est absent.

editor

C’est pour ces fanatiques qui veulent tout faire Ă  l’aide d’un Ă©diteur de texte. Elle lance votre Ă©diteur sur un fichier qui ressemble Ă  un fichier de configuration Unix, et vous modifiez le fichier qui sert Ă  communiquer avec debconf. L’auteur de debconf prĂ©fĂšre ne pas commenter les circonstances qui ont conduit Ă  l’écriture de cette interface.

web

Cette interface agit comme un serveur web auquel vous vous connectez avec votre navigateur web, pour parcourir les questions et y rĂ©pondre. Elle est trĂšs prometteuse, mais un peu rugueuse pour l’instant. Quand cette interface se met en route, elle indiquera le lieu oĂč vous devrez pointer votre navigateur web. Pour des raisons de sĂ©curitĂ©, vous devez exĂ©cuter votre navigateur web sur la machine que vous configurez.

Gardez Ă  l’esprit que ce n’est pas une interface sĂ©curisĂ©e. Tous ceux qui ont accĂšs Ă  l’ordinateur en cours de configuration peuvent aussi accĂ©der au serveur web et configurer certaines choses alors que cette interface tourne. C’est plus une preuve de concept qu’autre chose.

Vous pouvez changer l’interface par dĂ©faut qu’utilise debconf en le reconfigurant. D’un autre cĂŽtĂ©, si vous voulez juste changer l’interface pour un instant, vous pouvez positionner la variable d’environnement DEBIAN_FRONTEND avec le nom de l’interface Ă  utiliser. Par exemple :
DEBIAN_FRONTEND=readline apt-get install slrn

Les commandes dpkg-reconfigure (8) et dpkg-preconfigure (8) permettent aussi de leur passer --frontend= en paramùtre, suivi de l’interface que vous voulez qu’elles utilisent.

Notez que toutes les interfaces ne fonctionneront pas en toute circonstance. Si le dĂ©marrage d’une interface Ă©choue pour quelque raison que ce soit, debconf affichera un message expliquant pourquoi et se rabattra sur l’interface la plus proche.

Priorités

Pouvoir donner des prioritĂ©s aux questions que vous pose debconf est une fonctionnalitĂ© agrĂ©able. Si vous ne voulez pas ĂȘtre ennuyĂ© par les questions sans importance, vous pouvez configurer debconf pour qu’il ne vous pose que les questions les plus importantes. D’un autre cĂŽtĂ©, si vous aimez tout contrĂŽler, vous pouvez lui faire afficher toutes les questions. Chaque question a une prioritĂ©. Par ordre croissant d’importance :

low

Questions peu importantes dont les valeurs par défaut suffisent dans la majorité des cas.

medium

Questions normales avec des valeurs par défaut raisonnables.

high

Questions qui n’ont pas de valeurs par dĂ©faut convenables.

critical

Questions que vous avez vraiment besoin de voir (ou autre).

Seules les questions avec une prioritĂ© supĂ©rieure ou Ă©gale Ă  la prioritĂ© que vous avez choisie seront affichĂ©es. Vous pouvez fixer la valeur de la prioritĂ© en reconfigurant debconf, ou temporairement en passant l’option --priority= suivie de la valeur voulue aux commandes dpkg-reconfigure (8) et dpkg-preconfigure (8), ou en positionnant la variable d’environnement DEBIAN_PRIORITY.

Base de données principale

Debconf utilise une base de données sous-jacente plutÎt flexible et potentiellement compliquée pour sauvegarder les réponses déjà données aux questions. Le fichier /etc/debconf.conf est utilisé pour configurer cette base de données. Si vous avez besoin de configurer quelque chose de compliqué, comme utiliser une base de données distante pour obtenir les valeurs par défaut, annulées par des variables locales, lisez la page de manuel debconf.conf (5) pour tous les détails croustillants. La base de données principale se trouve généralement dans /var/cache/debconf/ .

Installation des paquets sans surveillance

Si vous avez beaucoup de machines Ă  gĂ©rer, vous aurez sĂ»rement besoin de faire une installation ou une mise Ă  niveau sans surveillance, alors que les rĂ©ponses par dĂ©faut Ă  certaines questions de configuration ne sont pas acceptables. Il y a beaucoup de maniĂšres pour faire cela ; toutes impliquent la configuration d’une base de donnĂ©es que debconf utilisera pour obtenir les rĂ©ponses par dĂ©faut que vous voulez.

Avant de lire cette section, vous devriez vraiment lire debconf.conf (5) car vous avez besoin de comprendre le fonctionnement de la base de données de debconf.

Le plus simple pour configurer la base de donnĂ©es est d’installer les paquets sur une machine et de rĂ©pondre aux questions. Vous pouvez aussi utiliser dpkg-preconfigure (8) pour configurer un ensemble de paquets sans rĂ©ellement les installer. Vous pouvez mĂȘme dĂ©cider d’écrire une base de donnĂ©es debconf Ă  la main, comme un simple texte...

Une fois que vous avez la base de donnĂ©es, vous devez trouver comment faire pour que les systĂšmes distants l’utilisent. Cela dĂ©pend bien sĂ»r de la configuration de ces systĂšmes et de la base de donnĂ©es qu’ils doivent utiliser.

Si vous utilisez la base de donnĂ©es LDAP de debconf, un seul serveur LDAP peut rĂ©pondre Ă  toutes les questions d’installation des paquets d’un rĂ©seau complet de machines Debian.

Mais peut-ĂȘtre utilisez-vous quelque chose d’un peu plus facile Ă  configurer, comme par exemple, la base de donnĂ©es de configuration de debconf par dĂ©faut, ou ne voulez-vous tout simplement pas que vos systĂšmes distants utilisent LDAP continuellement. Dans ce cas, la meilleure approche est de configurer temporairement les systĂšmes distants pour qu’ils ajoutent votre base de donnĂ©es sous leurs propres bases, de maniĂšre Ă  ce qu’ils obtiennent les valeurs par dĂ©faut de celle-ci. Debconf offre deux variables d’environnement, DEBCONF_DB_FALLBACK et DEBCONF_DB_OVERRIDE, pour le faire Ă  la volĂ©e et simplement. Ici, un exemple d’utilisation :

cat /var/cache/debconf/config.dat | \
ssh root@cible "DEBIAN_FRONTEND=noninteractive \
DEBCONF_DB_FALLBACK=Pipe apt-get upgrade"

Cela fait que debconf sur l’hĂŽte distant lit les donnĂ©es passĂ©es dans le tube Ă  travers la connexion SSH et les interprĂšte comme une base de donnĂ©es debconf en mode texte. Il n’utilise cette base de donnĂ©es qu’en dernier lieu -- c’est une base de donnĂ©es en lecture seule, oĂč l’on cherche les rĂ©ponses que la base principale du systĂšme ne peut fournir.

Une autre maniùre d’utiliser la variable d’environnement DEBCONF_DB_FALLBACK :

ssh -R 389:ldap:389 root@cible \
"DEBCONF_DB_FALLBACK=’LDAP{host:localhost}’ apt-get upgrade"

ssh est utilisĂ© ici pour configurer une connexion LDAP dans un tunnel et lancer debconf. On indique Ă  debconf d’utiliser le serveur LDAP comme base de donnĂ©es de secours. Remarquez l’utilisation de « {host:localhost} » pour configurer l’accĂšs de debconf Ă  la base de donnĂ©es LDAP fournissant le champ « host » avec la valeur « localhost ».

Encore une autre méthode :

scp config.dat root@cible:
ssh root@cible "DEBCONF_DB_FALLBACK=’File{/root/config.dat}’ apt-get upgrade

Ici, vous copiez la base de donnĂ©es avec scp, puis ssh, et vous faites utiliser Ă  debconf la base de donnĂ©es que vous avez copiĂ©e. Cela illustre un raccourci que vous pouvez utiliser dans les paramĂštres de DEBCONF_DB_FALLBACK -- si le nom n’est pas indiquĂ©, celui par dĂ©faut est « filename ».

Il y a un problĂšme avec l’utilisation des paramĂštres de DEBCONF_DB_FALLBACK : alors que la base de donnĂ©es de secours peut fournir des rĂ©ponses Ă  des questions que les autres bases de donnĂ©es debconf n’ont jamais vues, on ne l’interroge qu’en dernier lieu : aprĂšs les autres bases de donnĂ©es. Si vous avez besoin d’annuler temporairement une valeur existante sur l’hĂŽte distant, vous devriez plutĂŽt utiliser la variable DEBCONF_DB_OVERRIDE. Comme DEBCONF_DB_FALLBACK, elle configure une base de donnĂ©es temporaire, mais cette base de donnĂ©es est consultĂ©e avant les autres et peut ĂȘtre utilisĂ©e pour remplacer les valeurs existantes.

Développer pour debconf

Les développeurs de paquet et ceux qui veulent développer des paquets qui utilisent debconf devraient lire debconf-devel (7).

BriĂšvement, debconf communique avec des scripts de maintenance ou d’autres programmes via les entrĂ©e et sortie standard, en utilisant un langage orientĂ© ligne de commandes semblable Ă  ce qui est utilisĂ© par les protocoles usuels de l’internet comme SMTP. Les programmes utilisent ce protocole pour demander Ă  debconf d’afficher les questions et de rĂ©cupĂ©rer les rĂ©ponses de l’utilisateur. Les questions elles-mĂȘmes sont dĂ©finies dans des fichiers sĂ©parĂ©s, appelĂ©s « questionnaires », dont le format n’est pas trĂšs diffĂ©rent de celui d’un fichier de contrĂŽle de Debian.

Les paquets Debian qui utilisent debconf fournissent généralement un questionnaire et un script de « configuration » (exécuté pour préconfigurer le paquet) dans la partie métadonnées du paquet.

ENVIRONNEMENT

DEBIAN_FRONTEND

UtilisĂ©e pour changer temporairement l’interface debconf utilisĂ©e. Voir plus haut.

DEBIAN_PRIORITY

UtilisĂ©e pour changer temporairement la prioritĂ© que les questions doivent avoir (au minimum) pour ĂȘtre affichĂ©es par debconf. Voir plus haut.

DEBCONF_DEBUG

Active l’affichage du dĂ©bogage sur la sortie standard d’erreur. Elle peut ĂȘtre fixĂ©e par le nom d’un mĂ©canisme ou par une expression rationnelle qui correspond au nom d’un mĂ©canisme (comme « .* » pour afficher toutes les informations de dĂ©bogage). Les noms de mĂ©canisme incluent :

user

Informations de débogage intéressantes pour un utilisateur de debconf.

developer

Informations de débogage intéressantes pour un développeur de paquet.

db

Informations de débogage concernant la base de données sous-jacente.

DEBCONF_NOWARNINGS

Positionnez-la Ă  « yes » pour dĂ©sactiver certains avertissements que debconf pourrait afficher. Elle ne supprime pas l’affichage des erreurs fatales.

DEBCONF_TERSE

Positionnez-la à « yes » pour activer le mode concis dans lequel les interfaces debconf suppriment autant que possible le bavardage.

DEBCONF_DB_FALLBACK

Ajouter une base de donnĂ©es en plus de celles utilisĂ©es habituellement, elle est donc utilisĂ©e en secours pour obtenir les informations de configuration. Voir la section « Installation des paquets sans surveillance » plus haut. Si la valeur de la variable est le nom d’une base de donnĂ©es existante dans debconf.conf, la base de donnĂ©es sera alors utilisĂ©e. NĂ©anmoins, la variable d’environnement peut ĂȘtre utilisĂ©e pour configurer une base de donnĂ©es Ă  la volĂ©e, en donnant le type de la base de donnĂ©es et des paramĂštres optionnels (champ:valeur) aprĂšs le type et entre accolades. Les espaces sont utilisĂ©es pour sĂ©parer les champs, vous ne pourrez donc pas spĂ©cifier de valeur de champ contenant des espaces.

La ligne suivante demande l’utilisation de fallbackdb dans debconf.conf :
DEBCONF_DB_FALLBACK=fallbackdb

Alors que cette ligne configure une nouvelle base de données de type fichier, donne un nom de fichier à utiliser et désactive toute sauvegarde :
DEBCONF_DB_FALLBACK=File{Filename:/root/config.dat Backup:no}

En résumé, cette ligne configure une base de données de type Fichier avec un nom de fichier :
DEBCONF_DB_FALLBACK=File{/root/config.dat}

Remarquez que si la base de données de secours est configurée à la volée, elle sera utilisable en lecture seule par défaut.
DEBCONF_DB_OVERRIDE

Ajouter une base de donnĂ©es avant celles utilisĂ©es normalement, elle peut donc remplacer les valeurs des autres. La valeur de la variable fonctionne de la mĂȘme maniĂšre que pour DEBCONF_DB_FALLBACK.

DEBCONF_DB_REPLACE

Utiliser une base de donnĂ©es particuliĂšre au lieu des bases de donnĂ©es utilisĂ©es normalement. Cela peut ĂȘtre utile pour des tests avec une base de donnĂ©es sĂ©parĂ©e sans avoir Ă  crĂ©er de fichier debconf.conf sĂ©parĂ©, ou pour Ă©viter de verrouiller les bases de donnĂ©es normales.

DEBCONF_SYSTEMRC

Si cette variable d’environnement est dĂ©finie, debconf ignorera le fichier ˜/.debconfrc de l’utilisateur et utilisera Ă  la place le fichier de configuration du systĂšme.

DEBCONF_FORCE_DIALOG

Si cette variable d’environnement est dĂ©finie, debconf utilisera de prĂ©fĂ©rence dialog Ă  whiptail pour l’interface dialog.

DEBCONF_FORCE_XDIALOG

Si cette variable d’environnement est dĂ©finie, debconf utilisera de prĂ©fĂ©rence Xdialog Ă  whiptail pour l’interface dialog.

DEBCONF_NONINTERACTIVE_SEEN

PositionnĂ© Ă  "true", cela positionne le drapeau « seen » pour les questions posĂ©es dans l’interface non interactive.

BOGUES

Probablement beaucoup, il y a beaucoup de code ici.

Si vous prĂ©sentez un rapport de bogue, assurez-vous d’inclure les informations suivantes :

*

l’interface debconf que vous utilisiez lorsque le problùme est survenu ;

*

ce que vous avez fait pour déclencher le problÚme ;

*

le texte complet des messages d’erreur. Si vous pouvez reproduire le bogue, faites-le avec DEBCONF_DEBUG=’.*’ dĂ©finie et exportĂ©e. Cela accĂ©lĂšre beaucoup le dĂ©bogage.

VOIR AUSSI

debconf.conf (5), debconf-devel (7), dpkg-preconfigure (8), dpkg-reconfigure (8), debconf (1),

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.