.\" dpkg manual page - dpkg-maintscript-helper(1) .\" .\" Copyright © 2010-2012 Raphaël Hertzog .\" .\" This is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see . . .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH dpkg\-maintscript\-helper 1 04\-05\-2012 "Projet Debian" "suite dpkg" .SH NOM dpkg\-maintscript\-helper \- contournement des limitations connues de dpkg dans les scripts du responsable . .SH SYNOPSIS \fBdpkg\-maintscript\-helper\fP \fIcommande\fP [\fIparamètres\fP...] \fB\-\-\fP \fIparamètres\-script\-responsable\fP... . .SH "COMMANDES ET PARAMÈTRES" .P \fBrm_conffile\fP \fIfichier\-de\-configuration\fP [\fIversion\-précédente\fP [\fIpaquet\fP]] .P \fBmv_conffile\fP \fIancien\-fichier\-de\-configuration\fP \fInouveau\-fichier\-de\-configuration\fP [\fIdernière\-version\fP [\fIpaquet\fP]] . .SH DESCRIPTION .P Ce programme est prévu pour être exécuté dans les scripts du responsable afin de réaliser certaines tâches que dpkg ne peut pas (encore) prendre en charge directement à cause de limites de conception ou de limitations actuelles. .P La plupart de ces tâches nécessitent la coordination de plusieurs scripts du responsable (\fBpreinst\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). Pour éviter des erreurs, le même appel a simplement besoin d'être placé dans tous les scripts. Le programme adaptera alors son comportement en fonction de la variable d'environnement \fBDPKG_MAINTSCRIPT_NAME\fP et des paramètres des scripts du responsable qui doivent être passés avec un double tiret. . .SH "TÂCHES LIÉES AUX FICHIERS DE CONFIGURATION" .P Lors de la mise à jour d'un paquet, dpkg ne supprime pas automatiquement les fichiers de configuration (comportant des modifications locales à préserver) s'il n'est pas présent dans la nouvelle version. Il existe deux raisons principales à cela. En premier lieu, le fichier de configuration peut avoir été supprimé par accident, être réintégré dans la version suivante et il peut être nécessaire de retrouver les modifications locales. Ensuite, l'objectif est également de permettre d'effectuer la transition depuis des fichiers de configuration gérés par dpkg vers un fichier géré via les scripts du responsable, en général à l'aide d'un outil comme debconf ou ucf. .P Cela signifie que si un paquet a besoin de renommer ou supprimer un fichier de configuration, il doit le faire explicitement. L'objectif de \fBdpkg\-maintscript\-helper\fP est donc de fournir des méthodes de suppression ou renommage de fichiers de configuration via les scripts du responsable. . .SS "SUPPRESSION D'UN FICHIER DE CONFIGURATION" .P Si un fichier de configuration est complètement supprimé, il doit être effacé du disque sauf si l'administrateur local l'a modifié. Les éventuelles modifications locales doivent être conservées. Si la mise à jour du paquet est interrompue, le fichier de configuration rendu obsolète ne doit pas avoir disparu. .P L'ensemble de ces pré\-requis est mis en ?uvre en utilisant les commandes shell suivantes dans les scripts \fBpreinst\fP, \fBpostinst\fP et \fBpostrm\fP\ : .P dpkg\-maintscript\-helper rm_conffile \e \fIfichier\-de\-configuration\fP \fIdernière\-version\fP \fIpaquet\fP \-\- "$@" .P \fIfichier\-de\-configuration\fP est le nom du fichier de configuration à supprimer. .P \fIdernière\-version\fP indique la dernière version du paquet dont la mise à jour doit provoquer la suppression. Il est important de calculer \fIdernière\-version\fP correctement afin de supprimer les fichiers de configuration même si le paquet a été reconstruit en utilisant un numéro local de version. Par exemple, pour un fichier de configuration supprimé dans la version \fB2.0\-1\fP d'un paquet, \fIdernière\-version\fP doit être \fB2.0\-1~\fP. Cela provoquera la suppression du paquet même si la version précédente \fB1.0\-1\fP a été reconstruite avec \fB1.0\-1local1\fP comme numéro de version. .P Si le fichier de configuration n'était pas fourni pour une raison ou une autre dans plusieurs versions et que vous modifiez les scripts du responsable pour nettoyer l'ancien fichier, \fIversion\-précédente\fP doit être basé sur la version actuellement préparée et non la première version qui ne fournissait plus ce fichier de configuration. .P \fIpaquet\fP est le nom du paquet. S'il est vide ou omis, la variable d'environnement DPKG_MAINTSCRIPT_PACKAGE (telle que définie par dpkg) sera utilisée. .P Tous les paramètres des scripts du responsable doivent être passés au programme après «\ \-\-\ ». .P Détails de la mise en ?uvre actuelle\ :\ dans le script \fBpreinst\fP, il est vérifié si le fichier de configuration a été modifié. Celui\-ci est alors renommé, soit en \fIfichier\-de\-configuration\fP\fB.dpkg\-remove\fP s'il n'a pas été modifié, soit en \fIfichier\-de\-configuration\fP\fB.dpkg\-backup\fP s'il l'a été. Dans le script \fBpostinst\fP, ce dernier fichier est ensuite renommé en \fIfichier\-de\-configuration\fP\fB.dpkg\-bak\fP et conservé pour référence puisqu'il contient des modifications locales, mais le premier est supprimé. Si la mise à jour du paquet est interrompue, le script \fBpostrm\fP remet en place le fichier de configuration d'origine. À la purge du paquet, le script \fBpostrm\fP supprimera également le fichier \fB.dpkg\-bak\fP qui avait été conservé jusque là. . .SS "RENOMMAGE D'UN FICHIER DE CONFIGURATION" .P Si un fichier de configuration est déplacé à un autre endroit, il est nécessaire de garantir la préservation des modifications locales. À première vue, cela peut sembler être une simple modification dans le script \fBpreinst\fP, mais cela risque de résulter en une demande, par dpkg, d'approbation de modifications locales qui n'existent pas réellement. .P Un renommage élégant peut être mis en ?uvre avec les extraits shell qui suivent, dans les scripts \fBpreinst\fP, \fBpostinst\fP et \fBpostrm\fP. .P dpkg\-maintscript\-helper mv_conffile \e \fIancien\-fichier\fP \fInouveau\-fichier\fP \fIdernière\-version\fP \fIpaquet\fP \-\- "$@" .P \fIancien\-fichier\fP et \fInouveau\-fichier\fP sont l'ancien et le nouveau nom du fichier de configuration à renommer. .P \fIdernière\-version\fP indique la dernière version du paquet pour laquelle la mise à jour doit provoquer le renommage du fichier de configuration (voir les notes de \fBrm_conffile\fP précédemment pour choisir la valeur adaptée). Si ce paramètre est vide ou omis, l'opération sera tentée à chaque mise à jour (il est toutefois plus sûr d'indiquer la version afin que l'opération n'ait lieu qu'une fois). .P \fIpaquet\fP est le nom du paquet. S'il est vide ou omis, la variable d'environnement DPKG_MAINTSCRIPT_PACKAGE (telle que définie par dpkg) sera utilisée. .P Tous les paramètres des scripts du responsable doivent être passés au programme après «\ \-\-\ ». .P Détails de la mise en ?uvre actuelle\ :\ dans le script \fBpreinst\fP, il est vérifié si le fichier de configuration a été modifié. Celui\-ci est alors soit laissé en place s'il a été modifié, soit renommé en \fIancien\-fichier\fP\fB.dpkg\-remove\fP s'il ne l'a pas été. Lors de la configuration, le script \fBpostinst\fP supprime \fIancien\-fichier\fP\fB.dpkg\-remove\fP et renomme \fIancien\-fichier\fP et \fInouveau\-fichier\fP si \fIancien\-fichier\fP existe toujours. Si la mise à jour ou l'installation sont interrompues, le script \fBpostrm\fP renomme \fIancien\-fichier\fP\fB.dpkg\-remove\fP en \fIancien\-fichier\fP si c'est indispensable. . .SH "INTÉGRATION DANS LES PAQUETS" .P Comme \fBdpkg\-maintscript\-helper\fP est utilisé dans le script \fBpreinst\fP, l'utiliser sans conditions impose une pré\-dépendance afin de garantir que la version minimale nécessaire de dpkg et bien été préalablement configurée. La version nécessaire dépend de la commande utilisée. La version minimale dépend de la commande à utiliser\ : ainsi pour \fBrm_conffile\fP et \fBmv_conffile\fP, cette version est 1.15.7.2\ : .P \fBPre\-Depends:\fP dpkg (>= 1.15.7.2) .P Cependant, dans de nombreux cas, l'opération réalisée par le programme n'est pas critique pour le paquet et au lieu d'utiliser une pré\-dépendance, il est possible de ne lancer le programme que si on a la certitude que la commande nécessaire est gérée par la version actuellement installée de dpkg\ : .P if dpkg\-maintscript\-helper supports \fIcommande\fP; then dpkg\-maintscript\-helper \fIcommande\fP ... fi .SH TRADUCTION Ariel VARDI , 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à .