debconf

Autres langues

Langue: fr

Version: 11061 (www.delafond.org - 07/08/07)

Autres sections - même nom

Section: 7 (Divers)

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 (on peut y revenir 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 permettera � 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�. C'est contr�l� via /etc/apt/apt.conf.d/70debconf Quelquefois vous voudrez pr�configurer un paquet manuellement, quand vous l'installez sans apt. Vous pouvez utiliser dpkg-preconfigure (8) pour le 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

Supposez que vous avez install� un paquet et que vous avez r�pondu aux questions de debconf, mais maintenant que vous l'utilisez de temps en temps, vous r�alisez 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 (c'est voulu). Heureusement, debconf facilite la reconfiguration des paquets qui l'utilisent. Supposez que vous voulez reconfigurer debconf lui-m�me. Ex�cutez seulement, en tant que root :
  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 demande 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 les �changer � loisir. Voici les interfaces disponibles :
dialog
L'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 a vraiment des lacunes. Cette interface a quelques commandes sp�ciales. Pageup (ou ctrl-u) reviendra � la question pr�c�dente (si cela est support� par le paquet utilisant debconf) et pagedown (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.
non-interactive
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, voir la section ci-dessous sur l'installation de paquets sans surveillance.
gnome
C'est une interface homme/machine X moderne utilisant les biblioth�ques gtk et gnome. Bien s�r, elle n�cessite une variable DISPLAY valide 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 libgnome-perl.
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. Les auteurs de Debconf se retranchent derri�re le cinqui�me amendement quant aux 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 abrupte 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 configur� peuvent aussi acc�der au serveur web et configurer certaines choses tandis que cette interface tourne. C'est plus la preuve d'un 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 argument, suivi de l'interface que vous voulez qu'elles utilisent. Notez que les interfaces ne fonctionneront pas en toutes circonstances. Si le d�marrage d'une interface �choue pour quelque raison que ce soit, debconf imprimera 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 vous ne 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 valeur par d�faut convenable.
critical
Questions que vous avez vraiment besoin de voir (ou autre). Seules les questions avec une priorit� �gale ou sup�rieure � 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 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 principale plut�t flexible et potentiellement compliqu�e pour garder 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 faire lire � debconf 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 comme d'habitude. 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 que vous utilisez quelque chose d'un peu plus facile � configurer, comme par exemple, la base de donn�es de configuration de debconf par d�faut, ou vous ne voulez 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 plus simplement. Ici, un exemple d'utilisation :
   cat /var/cache/debconf/config.dat | \
   ssh root@target "DEBCONF_FRONTEND=noninteractive \
                  DEBCONF_DB_FALLBACK=Pipe apt-get upgrade" Cela fait que le debconf de 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, lisible seulement, 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@target \
        "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. Encore une autre m�thode :
  scp config.dat root@target:
  ssh root@target "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 vu, 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 paquets et ceux qui veulent construire des paquets qui utilisent debconf devraient lire debconf-devel(7). Bri�vement, debconf communique avec des scripts de maintenances ou d'autres programmes via les entr�e et sortie standards, en utilisant un langage orient� ligne de commandes semblable � ce qui est utilis� par les protocoles interne communs 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 �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 metadonn�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 r�guli�re 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 paquets.
db
Informations de d�bogage sur la base de donn�es principale.
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 verbiage.
DEBCONF_SHOWOLD
Positionnez-la � � yes � pour forcer debconf � r�afficher les questions qui ont d�j� �t� pos�es auparavant.
DEBCONF_DB_FALLBACK
Ajoute 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. 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 supprime 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 par d�faut seulement lisible.

DEBCONF_DB_OVERRIDE
Ajoute 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_SYSTEMRC
Si cette variable d'environnement est fix�e, debconf ignorera le fichier ~/.debconfrc de l'utilisateur et utilisera � la place le fichier de configuration du syst�me.

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='.*' fix�e et incluse. Cela acc�l�re beaucoup le d�bogage.

VOIR AUSSI

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

AUTEUR

Joey Hess <joeyh@debian.org>

TRADUCTION

Julien Louis <leonptitlouis@ifrance.com>