Commit | Line | Data |
---|---|---|
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 | |
27 | dpkg\-maintscript\-helper \- contournement des limitations connues de dpkg dans | |
28 | les 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 | |
52 | Ce programme est prévu pour être exécuté dans les scripts du responsable | |
53 | afin de réaliser certaines tâches que \fBdpkg\fP ne peut pas (encore) prendre | |
54 | en charge directement à cause de limites de conception ou de limitations | |
55 | actuelles. | |
56 | .P | |
57 | La plupart de ces tâches nécessitent la coordination de plusieurs scripts du | |
58 | responsable (\fBpreinst\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). Pour éviter des | |
59 | erreurs, le même appel a simplement besoin d'être placé dans tous les | |
60 | scripts. Le programme adaptera alors son comportement en fonction de la | |
61 | variable d'environnement \fBDPKG_MAINTSCRIPT_NAME\fP et des paramètres des | |
62 | scripts 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 | |
67 | Indique la dernière version du paquet pour laquelle la mise à jour doit | |
68 | provoquer l'opération. Il est important de déterminer correctement | |
69 | \fIversion\-précédente\fP afin que les opérations s'accomplissent correctement | |
70 | même si l'utilisateur reconstruit le paquet avec une version locale. Si le | |
71 | paramètre \fIversion\-précédente\fP est vide ou omis, l'opération sera tentée à | |
72 | chaque mise à jour (il est toutefois plus sûr d'indiquer la version afin que | |
73 | l'opération n'ait lieu qu'une fois). | |
74 | ||
75 | Si le fichier de configuration n'était pas fourni pour une raison ou une | |
76 | autre dans plusieurs versions et que vous modifiez les scripts du | |
77 | responsable pour nettoyer l'ancien fichier, \fIversion\-précédente\fP doit être | |
78 | basé sur la version actuellement préparée et non la première version qui ne | |
79 | fournissait plus ce fichier de configuration. Ceci s'applique à toutes les | |
80 | autres actions de la même manière | |
81 | ||
82 | Par 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 | |
84 | provoquera la suppression du fichier même si la version précédente \fB1.0\-1\fP | |
85 | a été reconstruite avec \fB1.0\-1local1\fP comme numéro de version. Ou bien, si | |
86 | un 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 | |
88 | réellement la substitution que dans les scripts du responsable dans la | |
89 | version \fB3.0\-1\fP, \fIdernière\-version\fP doit être \fB3.0\-1~\fP. | |
90 | .TP | |
91 | \fIpaquet\fP | |
92 | The package name. When the package is “Multi\-Arch: same” this parameter must | |
93 | include the architecture qualifier, otherwise it should \fBnot\fP usually | |
94 | include the architecture qualifier (as it would disallow cross\-grades, or | |
95 | switching from being architecture specific to architecture \fBall\fP or vice | |
96 | versa). If the parameter is empty or omitted, the | |
97 | \fBDPKG_MAINTSCRIPT_PACKAGE\fP and \fBDPKG_MAINTSCRIPT_ARCH\fP environment | |
98 | variables (as set by \fBdpkg\fP) will be used to generate an arch\-qualified | |
99 | package name. | |
100 | .TP | |
101 | \fB\-\-\fP | |
102 | Tous les paramètres des scripts du responsable doivent être passés au | |
103 | programme après \fB\-\-\fP. | |
104 | .SH "TÂCHES LIÉES AUX FICHIERS DE CONFIGURATION" | |
105 | .P | |
106 | Lors de la mise à jour d'un paquet, \fBdpkg\fP ne supprime pas automatiquement | |
107 | les fichiers de configuration (comportant des modifications locales à | |
108 | préserver) s'il n'est pas présent dans la nouvelle version. Il existe deux | |
109 | raisons principales à cela. En premier lieu, le fichier de configuration | |
110 | peut avoir été supprimé par accident, être réintégré dans la version | |
111 | suivante et il peut être nécessaire de retrouver les modifications | |
112 | locales. Ensuite, l'objectif est également de permettre d'effectuer la | |
113 | transition depuis des fichiers de configuration gérés par dpkg vers un | |
114 | fichier géré via les scripts du responsable, en général à l'aide d'un outil | |
115 | comme debconf ou ucf. | |
116 | .P | |
117 | Cela signifie que si un paquet a besoin de renommer ou supprimer un fichier | |
118 | de configuration, il doit le faire explicitement. L'objectif de | |
119 | \fBdpkg\-maintscript\-helper\fP est donc de fournir des méthodes de suppression | |
120 | ou renommage de fichiers de configuration via les scripts du responsable. | |
121 | . | |
122 | .SS "Supprimer un fichier de configuration" | |
123 | .P | |
124 | Si un fichier de configuration est complètement supprimé, il doit être | |
125 | effacé du disque sauf si l'administrateur local l'a modifié. Les éventuelles | |
126 | modifications locales doivent être conservées. Si la mise à jour du paquet | |
127 | est interrompue, le fichier de configuration rendu obsolète ne doit pas | |
128 | avoir disparu. | |
129 | .P | |
130 | L'ensemble de ces pré\-requis est mis en œuvre en utilisant les commandes | |
131 | shell 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 à | |
137 | supprimer. | |
138 | .P | |
139 | Détails de la mise en œuvre actuelle\ :\ dans le script \fBpreinst\fP, il est | |
140 | vérifié si le fichier de configuration a été modifié. Celui\-ci est alors | |
141 | renommé, soit en \fIfichier\-de\-configuration\fP\fB.dpkg\-remove\fP s'il n'a pas été | |
142 | modifié, 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 | |
145 | contient 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 | |
147 | fichier de configuration d'origine. À la purge du paquet, le script | |
148 | \fBpostrm\fP supprimera également le fichier \fB.dpkg\-bak\fP qui avait été | |
149 | conservé jusque là. | |
150 | . | |
151 | .SS "Renommer un fichier de configuration" | |
152 | .P | |
153 | Si un fichier de configuration est déplacé à un autre endroit, il est | |
154 | nécessaire de garantir la préservation des modifications locales. À première | |
155 | vue, 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, | |
157 | d'approbation de modifications locales qui n'existent pas réellement. | |
158 | .P | |
159 | Un renommage élégant peut être mis en œuvre avec les extraits shell qui | |
160 | suivent, 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 | |
165 | fichier de configuration à renommer. | |
166 | .P | |
167 | Détails de la mise en œuvre actuelle\ :\ dans le script \fBpreinst\fP, il est | |
168 | vérifié si le fichier de configuration a été modifié. Celui\-ci est alors | |
169 | soit 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 | |
171 | configuration, 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 | |
174 | ou l'installation sont interrompues, le script \fBpostrm\fP renomme | |
175 | \fIancien\-fichier\fP\fB.dpkg\-remove\fP en \fIancien\-fichier\fP si c'est | |
176 | indispensable. | |
177 | . | |
178 | .SH "SUBSTITUTIONS DE LIENS SYMBOLIQUES ET DE RÉPERTOIRES" | |
179 | . | |
180 | Lors de la mise à jour d'un paquet, \fBdpkg\fP ne substitue pas automatiquement | |
181 | un lien symbolique à un répertoire ou le contraire. Les retours à une | |
182 | version inférieure ne sont pas pris en charge et le chemin sera laissé comme | |
183 | il est. | |
184 | . | |
185 | .SS "Substituer un lien symbolique à un répertoire" | |
186 | . | |
187 | Si un lien symbolique est substitué à un répertoire réel, il est nécessaire | |
188 | de garantir qu'avant le dépaquettage le lien symbolique est retiré. À | |
189 | premiè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 | |
191 | local a personnalisé le lien symbolique ou si l'on revient à une version | |
192 | antérieure du paquet. | |
193 | .P | |
194 | Un renommage élégant peut être mis en œuvre avec les extraits shell qui | |
195 | suivent, 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 | |
201 | sera un répertoire à la fin de l'installation) et \fIancienne\-cible\fP la cible | |
202 | de l'ancien lien symbolique vers \fInom\-de\-chemin\fP. Cela peut être un chemin | |
203 | absolu ou relatif vers le répertoire contenant \fInom\-de\-chemin\fP. | |
204 | .P | |
205 | Détails de la mise en œuvre actuelle\ :\ dans le script \fBpreinst\fP, il est | |
206 | vérifié si le lien symbolique existe et pointe vers \fIancienne\-cible\fP. Si ce | |
207 | n'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 à | |
211 | jour 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 | . | |
216 | Si un répertoire réel est substitué à un lien symbolique, il est nécessaire | |
217 | de garantir qu'avant le dépaquettage le répertoire est retiré. À première | |
218 | vue, 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 | |
220 | contient des fichiers de configuration, des noms de chemins qui | |
221 | appartiennent à d'autres paquets, des noms de chemin créés localement ou si | |
222 | l'on revient à une version antérieure du paquet. | |
223 | .P | |
224 | Une substitution élégante peut être mise en œuvre avec les extraits shell | |
225 | qui 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 | |
231 | lien symbolique à la fin de l'installation) et \fInouvelle\-cible\fP la cible du | |
232 | nouveau lien symbolique vers \fInom\-de\-chemin\fP. Cela peut être un chemin | |
233 | absolu ou relatif vers le répertoire contenant \fInom\-de\-chemin\fP. | |
234 | .P | |
235 | Détails de la mise en œuvre actuelle\ :\ dans le script \fBpreinst\fP, il est | |
236 | vérifié si le répertoire existe et ne contient pas de fichiers de | |
237 | configuration, de noms de chemins qui appartiennent à d'autres paquets, de | |
238 | noms de chemin créés localement. Si ce n'est pas le cas, il est alors soit | |
239 | laissé en place, soit renommé en \fInom\-de\-chemin\fP\fB.dpkg\-backup\fP et un | |
240 | répertoire vide provisoire nommé \fInom\-de\-chemin\fP est créé, marqué par un | |
241 | fichier 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 | |
243 | encore un répertoire et si \fInom\-de\-chemin\fP est le répertoire provisoire. Il | |
244 | supprime le fichier qui marque le fichier provisoire et déplace les fichiers | |
245 | nouvellement créés dans le répertoire provisoire vers la cible du lien | |
246 | symbolique \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 | |
249 | mise à 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 | |
254 | Lors de l'utilisation d'un assistant d'empaquetage, veuillez vérifier s'il | |
255 | ne dispose pas d'une intégration native de \fBdpkg\-maintscript\-helper\fP ce qui | |
256 | vous facilitera la tâche. Voir par exemple \fBdh_installdeb\fP(1). | |
257 | .P | |
258 | Comme \fBdpkg\-maintscript\-helper\fP est utilisé dans le script \fBpreinst\fP, | |
259 | l'utiliser sans conditions impose une pré\-dépendance afin de garantir que la | |
260 | version minimale nécessaire de \fBdpkg\fP ait bien été préalablement | |
261 | configuré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 | |
267 | Cependant, dans de nombreux cas, l'opération réalisée par le programme n'est | |
268 | pas critique pour le paquet et au lieu d'utiliser une pré\-dépendance, il est | |
269 | possible de ne lancer le programme que si on a la certitude que la commande | |
270 | né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 | |
276 | La commande \fBsupports\fP retournera 0 en cas de réussite, 1 autrement. Elle | |
277 | vérifiera si les variables d'environnement telles que définies par \fBdpkg\fP | |
278 | et requises par le script sont présentes, et considérera que c'est un échec | |
279 | si l'environnement n'est pas suffisant. | |
280 | .SH "VOIR AUSSI" | |
281 | .ad l | |
282 | \fBdh_installdeb\fP(1) | |
283 | .SH TRADUCTION | |
284 | Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. | |
285 | Philippe Batailler, 2006. | |
286 | Nicolas François, 2006. | |
287 | Veuillez signaler toute erreur à <debian\-l10n\-french@lists.debian.org>. |