Man page - dpkg-maintscript-helper(1)
Packages contains this manual
Available languages:
en fr pt nl sv deManual
dpkg-maintscript-helper
NOMSYNOPSIS
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>.