Man page - debconf(7)
Packages contains this manual
Available languages:
en fr es pt ru ro deManual
DEBCONF
NOMDESCRIPTION
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.