Man page - dpkg-maintscript-helper(1)

Packages contains this manual

Available languages:

en fr pt nl sv de

Manual

dpkg-maintscript-helper

NOM
SYNOPSIS
COMMANDES ET PARAMÈTRES
DESCRIPTION
PARAMÈTRES COMMUNS
TÂCHES LIÉES AUX FICHIERS DE CONFIGURATION
Supprimer un fichier de configuration
Renommer un fichier de configuration
SUBSTITUTIONS DE LIENS SYMBOLIQUES ET DE RÉPERTOIRES
Substituer un lien symbolique à un répertoire
Substituer un répertoire à un lien symbolique
INTÉGRATION DANS LES PAQUETS
ENVIRONNEMENT
VOIR AUSSI
TRADUCTION

NOM

dpkg-maintscript-helper - Contournement des limitations connues de dpkg dans les scripts du responsable

SYNOPSIS

dpkg-maintscript-helper commande [ paramĂštre ...] -- paramĂštre-script-responsable ...

COMMANDES ET PARAMÈTRES

supports commande
rm_conffile
fichier-de-configuration [ version-précédente [ paquet ]]
mv_conffile
ancien-fichier-de-configuration
nouveau-fichier-de-configuration
[ derniĂšre-version [ paquet ]]
symlink_to_dir
nom-de-chemin ancienne-cible [ version-précédente
[ paquet ]]
dir_to_symlink
nom-de-chemin nouvelle-cible [ version-précédente
[ paquet ]]

DESCRIPTION

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.

Many of those tasks require coordinated actions from several maintainer scripts ( preinst , postinst , prerm , postrm ). To avoid mistakes the same call simply needs to be put in all scripts and the program will automatically adapt its behavior based on the environment variable DPKG_MAINTSCRIPT_NAME and on the maintainer scripts arguments that you have to forward after a double hyphen.

This program was introduced in dpkg 1.15.7.

PARAMÈTRES COMMUNS

version-précédente

Indique la derniĂšre version du paquet pour laquelle la mise Ă  niveau doit provoquer l’opĂ©ration. Il est important de dĂ©terminer correctement version-prĂ©cĂ©dente afin que les opĂ©rations s’accomplissent correctement mĂȘme si l’utilisateur reconstruit le paquet avec une version locale. Si le paramĂštre version-prĂ©cĂ©dente est vide ou omis, l’opĂ©ration sera tentĂ©e Ă  chaque mise Ă  niveau (il est toutefois plus sĂ»r d’indiquer la version afin que l’opĂ©ration n’ait lieu qu’une fois).

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, version-prĂ©cĂ©dente doit ĂȘtre basĂ© sur la version actuellement prĂ©parĂ©e et non la premiĂšre version qui ne fournissait plus ce fichier de configuration. Cela s’applique Ă  toutes les autres actions de la mĂȘme maniĂšre

Par exemple, pour un fichier de configuration supprimĂ© dans la version 2.0-1 d’un paquet, version-prĂ©cĂ©dente doit ĂȘtre 2.0-1˜ . Cela provoquera la suppression du fichier mĂȘme si la version prĂ©cĂ©dente 1.0-1 a Ă©tĂ© reconstruite avec 1.0-1local1 comme numĂ©ro de version. Ou bien, si un paquet substitue un chemin d’un lien symbolique (fourni dans la version 1.0-1 ) Ă  un rĂ©pertoire (fourni dans la version 2.0-1 ), mais ne rĂ©alise rĂ©ellement la substitution que dans les scripts du responsable dans la version 3.0-1 , version-prĂ©cĂ©dente doit ĂȘtre 3.0-1˜ .

paquet

Le nom du paquet propriĂ©taire du (des) nom(s) de chemin. Si le paquet est « Multi-Arch: same » ce paramĂštre doit inclure le type d’architecture, sinon, il ne devrait pas habituellement inclure le type d’architecture (parce qu’il pourrait interdire les catĂ©gories croisĂ©es, ou le passage d’une architecture spĂ©cifique Ă  l’architecture all ou vice-versa). Si le paramĂštre est vide ou omis, les variables d’environnement DPKG_MAINTSCRIPT_PACKAGE et DPKG_MAINTSCRIPT_ARCH (telles que dĂ©finies par dpkg lors de l’exĂ©cution des scripts du responsable) seront utilisĂ©es pour crĂ©er un nom de paquet avec une qualification d’architecture.

--

Tous les paramĂštres des scripts du responsable doivent ĂȘtre passĂ©s au programme aprĂšs -- .

TÂCHES LIÉES AUX FICHIERS DE CONFIGURATION

Lors de la mise Ă  niveau d’un paquet, dpkg ne supprime pas un fichier de configuration automatiquement (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Ă© Ă  l’aide des scripts du responsable, en gĂ©nĂ©ral Ă  l’aide d’un outil comme debconf ou ucf.

Cela signifie que si un paquet a besoin de renommer ou supprimer un fichier de configuration, il doit le faire explicitement. L’objectif de dpkg-maintscript-helper est donc de fournir des mĂ©thodes de suppression ou renommage de fichiers de configuration Ă  l’aide de scripts du responsable.

Supprimer un fichier de configuration

Note : This can be replaced in most cases by the "remove-on-upgrade" flag in DEBIAN/conffiles (since dpkg 1.20.6), see deb-conffiles (5).

If a conffile is completely removed, it should be removed from disk, unless the user has modified it. If there are local modifications, they should be preserved. If the package upgrade aborts, the newly obsolete conffile should not disappear.

L’ensemble de ces prĂ©-requis est mis en Ɠuvre en utilisant les commandes shell suivantes dans les scripts preinst , postinst et postrm :

dpkg-maintscript-helper rm_conffile \
fichier-de-configuration version-précédente paquet
-- "$@"

fichier-de-configuration est le nom du fichier de configuration Ă  supprimer.

DĂ©tails de la mise en Ɠuvre actuelle : dans le script preinst , il est vĂ©rifiĂ© si le fichier de configuration a Ă©tĂ© modifiĂ©. Celui-ci est alors renommĂ©, soit en fichier-de-configuration .dpkg-remove s’il n’a pas Ă©tĂ© modifiĂ©, soit en fichier-de-configuration .dpkg-backup s’il l’a Ă©tĂ©. Dans le script postinst , ce dernier fichier est ensuite renommĂ© en fichier-de-configuration .dpkg-bak 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 postrm remet en place le fichier de configuration d’origine. À la purge du paquet, le script postrm supprimera Ă©galement le fichier .dpkg-bak qui avait Ă©tĂ© conservĂ© jusque lĂ .

Renommer un fichier de configuration

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 preinst , mais cela risque de rĂ©sulter en une demande, par dpkg , d’approbation de modifications locales qui n’existent pas rĂ©ellement.

Un renommage Ă©lĂ©gant peut ĂȘtre mis en Ɠuvre avec les extraits shell qui suivent, dans les scripts preinst , postinst et postrm :

dpkg-maintscript-helper mv_conffile \
ancien-fichier-configuration nouveau-fichier-configuration
version-précédente paquet
-- "$@"

ancien-fichier-configuration et nouveau-fichier-configuration sont l’ancien et le nouveau nom du fichier de configuration à renommer.

DĂ©tails de la mise en Ɠuvre actuelle : dans le script preinst , 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 ancien-fichier-configuration .dpkg-remove s’il ne l’a pas Ă©tĂ©. Lors de la configuration, le script postinst supprime ancien-fichier-configuration .dpkg-remove et renomme ancien-fichier-configuration et nouveau-fichier-configuration si ancien-fichier-configuration existe toujours. Si la mise Ă  jour ou l’installation sont interrompues, le script postrm renomme ancien-fichier-configuration .dpkg-remove en ancien-fichier-configuration si c’est indispensable.

SUBSTITUTIONS DE LIENS SYMBOLIQUES ET DE RÉPERTOIRES

Lors de la mise Ă  niveau d’un paquet, dpkg ne substitue pas automatiquement un lien symbolique Ă  un rĂ©pertoire ou le contraire. Les retours Ă  une version infĂ©rieure ne sont pas pris en charge et le chemin sera laissĂ© comme il est.

Note : The symlinks and directories created during these switches need to be shipped in the new packages, or dpkg will not be able to remove them on purge.

Substituer un lien symbolique à un répertoire

Si un lien symbolique est substituĂ© Ă  un rĂ©pertoire rĂ©el, il est nĂ©cessaire de garantir qu’avant le dĂ©paquetage le lien symbolique est retirĂ©. À premiĂšre vue, cela peut sembler ĂȘtre une simple modification dans le script preinst , mais cela risque de rĂ©sulter en problĂšmes si l’administrateur local a personnalisĂ© le lien symbolique ou si l’on revient Ă  une version antĂ©rieure du paquet.

Un renommage Ă©lĂ©gant peut ĂȘtre mis en Ɠuvre avec les extraits shell qui suivent, dans les scripts preinst , postinst et postrm :

dpkg-maintscript-helper symlink_to_dir \
nom-de-chemin ancienne-cible version-précédente paquet
-- "$@"

nom-de-chemin est le nom absolu de l’ancien lien symbolique (le chemin sera un rĂ©pertoire Ă  la fin de l’installation) et ancienne-cible la cible de l’ancien lien symbolique vers nom-de-chemin . Cela peut ĂȘtre un chemin absolu ou relatif vers le rĂ©pertoire contenant nom-de-chemin .

DĂ©tails de la mise en Ɠuvre actuelle : dans le script preinst , il est vĂ©rifiĂ© si le lien symbolique existe et pointe vers ancienne-cible . Si ce n’est pas le cas, il est alors soit laissĂ© en place, soit renommĂ© en nom-de-chemin .dpkg-backup . Lors de la configuration, le script postinst supprime nom-de-chemin .dpkg-backup si nom-de-chemin .dpkg-backup est encore un lien symbolique. Si la mise Ă  niveau ou l’installation sont interrompues, le script postrm renomme nom-de-chemin .dpkg-backup en nom-de-chemin si c’est indispensable.

Substituer un répertoire à un lien symbolique

Si un rĂ©pertoire rĂ©el est substituĂ© Ă  un lien symbolique, il est nĂ©cessaire de garantir qu’avant le dĂ©paquetage le rĂ©pertoire est retirĂ©. À premiĂšre vue, cela peut sembler ĂȘtre une simple modification dans le script preinst , mais cela risque de rĂ©sulter en problĂšmes si le rĂ©pertoire contient des fichiers de configuration, des noms de chemins qui appartiennent Ă  d’autres paquets, des noms de chemin créés localement ou si l’on revient Ă  une version antĂ©rieure du paquet.

Une substitution Ă©lĂ©gante peut ĂȘtre mise en Ɠuvre avec les extraits shell qui suivent, dans les scripts preinst , postinst et postrm :

dpkg-maintscript-helper dir_to_symlink \
nom-de-chemin nouvelle-cible version-précédente paquet
-- "$@"

nom-de-chemin est le nom absolu de l’ancien rĂ©pertoire (le chemin sera un lien symbolique Ă  la fin de l’installation) et nouvelle-cible la cible du nouveau lien symbolique vers nom-de-chemin . Cela peut ĂȘtre un chemin absolu ou relatif vers le rĂ©pertoire contenant nom-de-chemin .

DĂ©tails de la mise en Ɠuvre actuelle : dans le script preinst , il est vĂ©rifiĂ© si le rĂ©pertoire existe et ne contient pas de fichiers de configuration, de noms de chemin qui appartiennent Ă  d’autres paquets, de noms de chemin créés localement. Si ce n’est pas le cas, il est alors soit laissĂ© en place, soit renommĂ© en nom-de-chemin .dpkg-backup et un rĂ©pertoire vide provisoire nommĂ© nom-de-chemin est créé, marquĂ© par un fichier pour que dpkg le suive. Lors de la configuration, le script postinst achĂšve la substitution si nom-de-chemin .dpkg-backup est encore un rĂ©pertoire et si nom-de-chemin est le rĂ©pertoire provisoire. Il supprime le fichier qui marque le fichier provisoire et dĂ©place les fichiers nouvellement créés dans le rĂ©pertoire provisoire vers la cible du lien symbolique nouvelle-cible , remplace le rĂ©pertoire provisoire nom-de-chemin , maintenant vide, par un lien symbolique vers la nouvelle-cible et, enfin supprime nom-de-chemin .dpkg-backup . Si la mise Ă  niveau ou l’installation sont interrompues, le script postrm renomme nom-de-chemin .dpkg-backup en nom-de-chemin si c’est indispensable.

INTÉGRATION DANS LES PAQUETS

When using a packaging helper, please check if it has native dpkg-maintscript-helper integration, which might make your life easier. See for example dh_installdeb (1).

Comme dpkg-maintscript-helper est utilisĂ© dans le script preinst , l’utiliser sans conditions impose une prĂ©-dĂ©pendance afin de garantir que la version minimale nĂ©cessaire de dpkg ait bien Ă©tĂ© prĂ©alablement configurĂ©e. La version minimale dĂ©pend de la commande utilisĂ©e : ainsi pour rm_conffile et mv_conffile , cette version est 1.15.7.2, pour symlink_to_dir et dir_to_symlink , c’est 1.17.14 :

Pre-Depends: dpkg (>= 1.17.14)

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 :

if dpkg-maintscript-helper supports commande ; then
dpkg-maintscript-helper commande ...
fi

La commande supports retournera 0 en cas de rĂ©ussite, 1 autrement. Elle vĂ©rifiera si les variables d’environnement telles que dĂ©finies par dpkg et requises par le script sont prĂ©sentes, et considĂ©rera que c’est un Ă©chec si l’environnement n’est pas suffisant.

ENVIRONNEMENT

DPKG_ROOT

Si cette variable est positionnée, ce répertoire sera utilisé comme répertoire racine du systÚme de fichiers.

DPKG_ADMINDIR

Si cette variable est positionnée, ce répertoire sera utilisé comme répertoire de données pour dpkg .

DPKG_COLORS

Fixe le mode de couleur (depuis dpkg 1.19.1). Les valeurs admises actuellement sont auto (par défaut), always et never .

VOIR AUSSI

dh_installdeb (1).

TRADUCTION

Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <debian-l10n-french@lists.debian.org>.