dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / fr / dpkg-maintscript-helper.man
CommitLineData
1479465f
GJ
1.\" dpkg manual page - dpkg-maintscript-helper(1)
2.\"
3.\" Copyright © 2010-2012 Raphaël Hertzog <hertzog@debian.org>
4.\" Copyright © 2011-2015 Guillem Jover <guillem@debian.org>
5.\"
6.\" This is free software; you can redistribute it and/or modify
7.\" it under the terms of the GNU General Public License as published by
8.\" the Free Software Foundation; either version 2 of the License, or
9.\" (at your option) any later version.
10.\"
11.\" This is distributed in the hope that it will be useful,
12.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
13.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14.\" GNU General Public License for more details.
15.\"
16.\" You should have received a copy of the GNU General Public License
17.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
18.
19.\"*******************************************************************
20.\"
21.\" This file was generated with po4a. Translate the source file.
22.\"
23.\"*******************************************************************
24.TH dpkg\-maintscript\-helper 1 %RELEASE_DATE% %VERSION% "suite dpkg"
25.nh
26.SH NOM
27dpkg\-maintscript\-helper \- contournement des limitations connues de dpkg dans
28les scripts du responsable
29.
30.SH SYNOPSIS
31\fBdpkg\-maintscript\-helper\fP \fIcommande\fP [\fIparamètres\fP...] \fB\-\-\fP
32\fIparamètres\-script\-responsable\fP...
33.
34.SH "COMMANDES ET PARAMÈTRES"
35.P
36\fBsupports\fP \fIcommande\fP
37.P
38\fBrm_conffile\fP \fIfichier\-de\-configuration\fP [\fIversion\-précédente\fP
39[\fIpaquet\fP]]
40.P
41\fBmv_conffile\fP \fIancien\-fichier\-de\-configuration\fP
42\fInouveau\-fichier\-de\-configuration\fP [\fIdernière\-version\fP [\fIpaquet\fP]]
43.P
44\fBsymlink_to_dir\fP \fInom\-de\-chemin\fP \fIancienne\-cible\fP [\fIversion\-précédente\fP
45[\fIpaquet\fP]]
46.P
47\fBdir_to_symlink\fP \fInom\-de\-chemin\fP \fInouvelle\-cible\fP [\fIversion\-précédente\fP
48[\fIpaquet\fP]]
49.
50.SH DESCRIPTION
51.P
52Ce programme est prévu pour être exécuté dans les scripts du responsable
53afin de réaliser certaines tâches que \fBdpkg\fP ne peut pas (encore) prendre
54en charge directement à cause de limites de conception ou de limitations
55actuelles.
56.P
57La plupart de ces tâches nécessitent la coordination de plusieurs scripts du
58responsable (\fBpreinst\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). Pour éviter des
59erreurs, le même appel a simplement besoin d'être placé dans tous les
60scripts. Le programme adaptera alors son comportement en fonction de la
61variable d'environnement \fBDPKG_MAINTSCRIPT_NAME\fP et des paramètres des
62scripts du responsable qui doivent être passés avec un double tiret.
63.
64.SH "PARAMÈTRES COMMUNS"
65.TP
66\fIversion\-précédente\fP
67Indique la dernière version du paquet pour laquelle la mise à jour doit
68provoquer l'opération. Il est important de déterminer correctement
69\fIversion\-précédente\fP afin que les opérations s'accomplissent correctement
70même si l'utilisateur reconstruit le paquet avec une version locale. Si le
71paramètre \fIversion\-précédente\fP est vide ou omis, l'opération sera tentée à
72chaque mise à jour (il est toutefois plus sûr d'indiquer la version afin que
73l'opération n'ait lieu qu'une fois).
74
75Si le fichier de configuration n'était pas fourni pour une raison ou une
76autre dans plusieurs versions et que vous modifiez les scripts du
77responsable pour nettoyer l'ancien fichier, \fIversion\-précédente\fP doit être
78basé sur la version actuellement préparée et non la première version qui ne
79fournissait plus ce fichier de configuration. Ceci s'applique à toutes les
80autres actions de la même manière
81
82Par exemple, pour un fichier de configuration supprimé dans la version
83\fB2.0\-1\fP d'un paquet, \fIdernière\-version\fP doit être \fB2.0\-1~\fP. Cela
84provoquera la suppression du fichier même si la version précédente \fB1.0\-1\fP
85a été reconstruite avec \fB1.0\-1local1\fP comme numéro de version. Ou bien, si
86un paquet substitue un chemin d'un lien symbolique (fourni dans la version
87\fB1.0\-1\fP) à un répertoire (fourni dans la version \fB2.0\-1\fP), mais ne réalise
88réellement la substitution que dans les scripts du responsable dans la
89version \fB3.0\-1\fP, \fIdernière\-version\fP doit être \fB3.0\-1~\fP.
90.TP
91\fIpaquet\fP
92The package name. When the package is “Multi\-Arch: same” this parameter must
93include the architecture qualifier, otherwise it should \fBnot\fP usually
94include the architecture qualifier (as it would disallow cross\-grades, or
95switching from being architecture specific to architecture \fBall\fP or vice
96versa). If the parameter is empty or omitted, the
97\fBDPKG_MAINTSCRIPT_PACKAGE\fP and \fBDPKG_MAINTSCRIPT_ARCH\fP environment
98variables (as set by \fBdpkg\fP) will be used to generate an arch\-qualified
99package name.
100.TP
101\fB\-\-\fP
102Tous les paramètres des scripts du responsable doivent être passés au
103programme après \fB\-\-\fP.
104.SH "TÂCHES LIÉES AUX FICHIERS DE CONFIGURATION"
105.P
106Lors de la mise à jour d'un paquet, \fBdpkg\fP ne supprime pas automatiquement
107les fichiers de configuration (comportant des modifications locales à
108préserver) s'il n'est pas présent dans la nouvelle version. Il existe deux
109raisons principales à cela. En premier lieu, le fichier de configuration
110peut avoir été supprimé par accident, être réintégré dans la version
111suivante et il peut être nécessaire de retrouver les modifications
112locales. Ensuite, l'objectif est également de permettre d'effectuer la
113transition depuis des fichiers de configuration gérés par dpkg vers un
114fichier géré via les scripts du responsable, en général à l'aide d'un outil
115comme debconf ou ucf.
116.P
117Cela signifie que si un paquet a besoin de renommer ou supprimer un fichier
118de configuration, il doit le faire explicitement. L'objectif de
119\fBdpkg\-maintscript\-helper\fP est donc de fournir des méthodes de suppression
120ou renommage de fichiers de configuration via les scripts du responsable.
121.
122.SS "Supprimer un fichier de configuration"
123.P
124Si un fichier de configuration est complètement supprimé, il doit être
125effacé du disque sauf si l'administrateur local l'a modifié. Les éventuelles
126modifications locales doivent être conservées. Si la mise à jour du paquet
127est interrompue, le fichier de configuration rendu obsolète ne doit pas
128avoir disparu.
129.P
130L'ensemble de ces pré\-requis est mis en œuvre en utilisant les commandes
131shell suivantes dans les scripts \fBpreinst\fP, \fBpostinst\fP et \fBpostrm\fP\ :
132.P
133 dpkg\-maintscript\-helper rm_conffile \e
134 \fIfichier\-de\-configuration\fP \fIdernière\-version\fP \fIpaquet\fP \-\- "$@"
135.P
136\fIfichier\-de\-configuration\fP est le nom du fichier de configuration à
137supprimer.
138.P
139Détails de la mise en œuvre actuelle\ :\ dans le script \fBpreinst\fP, il est
140vérifié si le fichier de configuration a été modifié. Celui\-ci est alors
141renommé, soit en \fIfichier\-de\-configuration\fP\fB.dpkg\-remove\fP s'il n'a pas été
142modifié, soit en \fIfichier\-de\-configuration\fP\fB.dpkg\-backup\fP s'il l'a
143été. Dans le script \fBpostinst\fP, ce dernier fichier est ensuite renommé en
144\fIfichier\-de\-configuration\fP\fB.dpkg\-bak\fP et conservé pour référence puisqu'il
145contient des modifications locales, mais le premier est supprimé. Si la mise
146à jour du paquet est interrompue, le script \fBpostrm\fP remet en place le
147fichier de configuration d'origine. À la purge du paquet, le script
148\fBpostrm\fP supprimera également le fichier \fB.dpkg\-bak\fP qui avait été
149conservé jusque là.
150.
151.SS "Renommer un fichier de configuration"
152.P
153Si un fichier de configuration est déplacé à un autre endroit, il est
154nécessaire de garantir la préservation des modifications locales. À première
155vue, cela peut sembler être une simple modification dans le script
156\fBpreinst\fP, mais cela risque de résulter en une demande, par \fBdpkg\fP,
157d'approbation de modifications locales qui n'existent pas réellement.
158.P
159Un renommage élégant peut être mis en œuvre avec les extraits shell qui
160suivent, dans les scripts \fBpreinst\fP, \fBpostinst\fP et \fBpostrm\fP\ :
161.P
162 dpkg\-maintscript\-helper mv_conffile \e
163.P
164\fIancien\-fichier\fP et \fInouveau\-fichier\fP sont l'ancien et le nouveau nom du
165fichier de configuration à renommer.
166.P
167Détails de la mise en œuvre actuelle\ :\ dans le script \fBpreinst\fP, il est
168vérifié si le fichier de configuration a été modifié. Celui\-ci est alors
169soit laissé en place s'il a été modifié, soit renommé en
170\fIancien\-fichier\fP\fB.dpkg\-remove\fP s'il ne l'a pas été. Lors de la
171configuration, le script \fBpostinst\fP supprime
172\fIancien\-fichier\fP\fB.dpkg\-remove\fP et renomme \fIancien\-fichier\fP et
173\fInouveau\-fichier\fP si \fIancien\-fichier\fP existe toujours. Si la mise à jour
174ou l'installation sont interrompues, le script \fBpostrm\fP renomme
175\fIancien\-fichier\fP\fB.dpkg\-remove\fP en \fIancien\-fichier\fP si c'est
176indispensable.
177.
178.SH "SUBSTITUTIONS DE LIENS SYMBOLIQUES ET DE RÉPERTOIRES"
179.
180Lors de la mise à jour d'un paquet, \fBdpkg\fP ne substitue pas automatiquement
181un lien symbolique à un répertoire ou le contraire. Les retours à une
182version inférieure ne sont pas pris en charge et le chemin sera laissé comme
183il est.
184.
185.SS "Substituer un lien symbolique à un répertoire"
186.
187Si un lien symbolique est substitué à un répertoire réel, il est nécessaire
188de garantir qu'avant le dépaquettage le lien symbolique est retiré. À
189première vue, cela peut sembler être une simple modification dans le script
190\fBpreinst\fP, mais cela risque de résulter en problèmes si l'administrateur
191local a personnalisé le lien symbolique ou si l'on revient à une version
192antérieure du paquet.
193.P
194Un renommage élégant peut être mis en œuvre avec les extraits shell qui
195suivent, dans les scripts \fBpreinst\fP, \fBpostinst\fP et \fBpostrm\fP\ :
196.P
197 dpkg\-maintscript\-helper symlink_to_dir \e
198 \fInom\-de\-chemin\fP \fIancienne\-cible\fP \fIversion\-précédente\fP \fIpaquet\fP \-\- "$@"
199.P
200\fInom\-de\-chemin\fP est le nom absolu de l'ancien lien symbolique (le chemin
201sera un répertoire à la fin de l'installation) et \fIancienne\-cible\fP la cible
202de l'ancien lien symbolique vers \fInom\-de\-chemin\fP. Cela peut être un chemin
203absolu ou relatif vers le répertoire contenant \fInom\-de\-chemin\fP.
204.P
205Détails de la mise en œuvre actuelle\ :\ dans le script \fBpreinst\fP, il est
206vérifié si le lien symbolique existe et pointe vers \fIancienne\-cible\fP. Si ce
207n'est pas le cas, il est alors soit laissé en place, soit renommé en
208\fInom\-de\-chemin\fP\fB.dpkg\-backup\fP. Lors de la configuration, le script
209\fBpostinst\fP supprime \fInom\-de\-chemin\fP\fB.dpkg\-backup\fP si
210\fInom\-de\-chemin\fP\fB.dpkg\-backup\fP est encore un lien symbolique. Si la mise à
211jour ou l'installation sont interrompues, le script \fBpostrm\fP renomme
212\fInom\-de\-chemin\fP\fB.dpkg\-backup\fP en \fInom\-de\-chemin\fP si c'est indispensable.
213.
214.SS "Substituer un répertoire à un lien symbolique"
215.
216Si un répertoire réel est substitué à un lien symbolique, il est nécessaire
217de garantir qu'avant le dépaquettage le répertoire est retiré. À première
218vue, cela peut sembler être une simple modification dans le script
219\fBpreinst\fP, mais cela risque de résulter en problèmes si le répertoire
220contient des fichiers de configuration, des noms de chemins qui
221appartiennent à d'autres paquets, des noms de chemin créés localement ou si
222l'on revient à une version antérieure du paquet.
223.P
224Une substitution élégante peut être mise en œuvre avec les extraits shell
225qui suivent, dans les scripts \fBpreinst\fP, \fBpostinst\fP et \fBpostrm\fP\ :
226.P
227 dpkg\-maintscript\-helper dir_to_symlink \e
228 \fInom\-de\-chemin\fP \fInouvelle\-cible\fP \fIversion\-précédente\fP \fIpaquet\fP \-\- "$@"
229.P
230\fInom\-de\-chemin\fP est le nom absolu de l'ancien répertoire (le chemin sera un
231lien symbolique à la fin de l'installation) et \fInouvelle\-cible\fP la cible du
232nouveau lien symbolique vers \fInom\-de\-chemin\fP. Cela peut être un chemin
233absolu ou relatif vers le répertoire contenant \fInom\-de\-chemin\fP.
234.P
235Détails de la mise en œuvre actuelle\ :\ dans le script \fBpreinst\fP, il est
236vérifié si le répertoire existe et ne contient pas de fichiers de
237configuration, de noms de chemins qui appartiennent à d'autres paquets, de
238noms de chemin créés localement. Si ce n'est pas le cas, il est alors soit
239laissé en place, soit renommé en \fInom\-de\-chemin\fP\fB.dpkg\-backup\fP et un
240répertoire vide provisoire nommé \fInom\-de\-chemin\fP est créé, marqué par un
241fichier pour que dpkg le suive. Lors de la configuration, le script
242\fBpostinst\fP achève la substitution si \fInom\-de\-chemin\fP\fB.dpkg\-backup\fP est
243encore un répertoire et si \fInom\-de\-chemin\fP est le répertoire provisoire. Il
244supprime le fichier qui marque le fichier provisoire et déplace les fichiers
245nouvellement créés dans le répertoire provisoire vers la cible du lien
246symbolique \fInouvelle cible\fP, remplace le répertoire provisoire
247\fInom\-de\-chemin\fP, maintenant vide, par un lien symbolique vers la
248\fInouvelle\-cible\fP et, enfin supprime \fInom\-de\-chemin\fP\fB.dpkg\-backup\fP. Si la
249mise à jour ou l'installation sont interrompues, le script \fBpostrm\fP renomme
250\fInom\-de\-chemin\fP\fB.dpkg\-backup\fP en \fInom\-de\-chemin\fP si c'est indispensable.
251.
252.SH "INTÉGRATION DANS LES PAQUETS"
253.P
254Lors de l'utilisation d'un assistant d'empaquetage, veuillez vérifier s'il
255ne dispose pas d'une intégration native de \fBdpkg\-maintscript\-helper\fP ce qui
256vous facilitera la tâche. Voir par exemple \fBdh_installdeb\fP(1).
257.P
258Comme \fBdpkg\-maintscript\-helper\fP est utilisé dans le script \fBpreinst\fP,
259l'utiliser sans conditions impose une pré\-dépendance afin de garantir que la
260version minimale nécessaire de \fBdpkg\fP ait bien été préalablement
261configurée. La version minimale dépend de la commande utilisée\ : ainsi pour
262\fBrm_conffile\fP et \fBmv_conffile\fP, cette version est 1.15.7.2, pour
263\fBsymlink_to_dir\fP et \fBdir_to_symlink\fP, c'est 1.17.14\ :
264.P
265 \fBPre\-Depends:\fP dpkg (>= 1.17.14)
266.P
267Cependant, dans de nombreux cas, l'opération réalisée par le programme n'est
268pas critique pour le paquet et au lieu d'utiliser une pré\-dépendance, il est
269possible de ne lancer le programme que si on a la certitude que la commande
270nécessaire est gérée par la version actuellement installée de \fBdpkg\fP\ :
271.P
272 if dpkg\-maintscript\-helper supports \fIcommande\fP; then
273 dpkg\-maintscript\-helper \fIcommande\fP ...
274 fi
275.P
276La commande \fBsupports\fP retournera 0 en cas de réussite, 1 autrement. Elle
277vérifiera si les variables d'environnement telles que définies par \fBdpkg\fP
278et requises par le script sont présentes, et considérera que c'est un échec
279si l'environnement n'est pas suffisant.
280.SH "VOIR AUSSI"
281.ad l
282\fBdh_installdeb\fP(1)
283.SH TRADUCTION
284Ariel VARDI <ariel.vardi@freesbee.fr>, 2002.
285Philippe Batailler, 2006.
286Nicolas François, 2006.
287Veuillez signaler toute erreur à <debian\-l10n\-french@lists.debian.org>.