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% dpkg\-suite | |
25 | .nh | |
26 | .SH NAAM | |
27 | dpkg\-maintscript\-helper \- omzeilt in de scripts van de onderhouder gekende | |
28 | beperkingen van dpkg | |
29 | . | |
30 | .SH OVERZICHT | |
31 | \fBdpkg\-maintscript\-helper\fP \fIcommando\fP [\fIparameter\fP...] \fB\-\-\fP | |
32 | \fIonderhouderscriptparameter\fP... | |
33 | . | |
34 | .SH "COMMANDO'S EN PARAMETERS" | |
35 | .P | |
36 | \fBsupports\fP \fIcommando\fP | |
37 | .P | |
38 | \fBrm_conffile\fP \fIconfiguratiebestand\fP [\fIvorige\-versie\fP [\fIpakket\fP]] | |
39 | .P | |
40 | \fBmv_conffile\fP \fIoud\-configuratiebestand\fP \fInieuw\-configuratiebestand\fP | |
41 | [\fIvorige\-versie\fP [\fIpakket\fP]] | |
42 | .P | |
43 | \fBsymlink_to_dir\fP \fIpadnaam\fP \fIoud\-doel\fP [\fIvorige\-versie\fP [\fIpakket\fP]] | |
44 | .P | |
45 | \fBdir_to_symlink\fP \fIpadnaam\fP \fInieuw\-doel\fP [\fIvorige\-versie\fP [\fIpakket\fP]] | |
46 | . | |
47 | .SH BESCHRIJVING | |
48 | .P | |
49 | Dit programma is ontwikkeld om uitgevoerd te worden binnenin | |
50 | onderhouderscripts om sommige taken te verrichten die \fBdpkg\fP (nog) niet | |
51 | alleen kan uitvoeren, ofwel omwille van gemaakte keuzes inzake design ofwel | |
52 | ten gevolge van actuele beperkingen. | |
53 | .P | |
54 | Veel van deze taken vereisen gecoördineerde actie van verschillende | |
55 | onderhouderscripts (\fBpreinst\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). Om fouten | |
56 | te vermijden moet gewoon dezelfde aanroep in alle scripts geplaatst worden | |
57 | en het programma zal zijn gedrag automatisch aan passen op basis van de | |
58 | omgevingsvariabele \fBDPKG_MAINTSCRIPT_NAME\fP en de argumenten van de | |
59 | onderhouderscripts die na een dubbel koppelteken opgegeven moeten worden. | |
60 | . | |
61 | .SH "GEMEENSCHAPPELIJKE PARAMETERS" | |
62 | .TP | |
63 | \fIvorige\-versie\fP | |
64 | Definieert de laatste versie van het pakket waarvan de opwaardering de | |
65 | operatie moet uitlokken. Het is belangrijk om \fIvorige\-versie\fP correct te | |
66 | berekenen, zodat de operaties correct uitgevoerd worden zelfs in het geval | |
67 | de gebruiker het pakket met een lokaal versienummer herbouwde. Indien | |
68 | \fIvorige\-versie\fP leeg of weggelaten is, dan wordt geprobeerd om bij elke | |
69 | opwaardering de operatie uit te voeren (merk op dat het veiliger is om de | |
70 | versie op te geven zodat slechts eenmaal geprobeerd wordt om de operatie uit | |
71 | te voeren). | |
72 | ||
73 | Indien sinds verschillende versies geen configuratiebestand meer meegeleverd | |
74 | werd en u nu de scripts van de pakketonderhouder aan het wijzigen bent om | |
75 | het verouderde bestand op te ruimen, moet \fIvorige\-versie\fP ingesteld worden | |
76 | op de versie van het pakket dat u nu aan het voorbereiden bent, niet op de | |
77 | eerste versie van het pakket zonder het configuratiebestand. Dit geldt op | |
78 | dezelfde wijze voor alle andere acties. | |
79 | ||
80 | Voor een configuratiebestand dat in de versie \fB2.0\-1\fP van een pakket | |
81 | verwijderd werd, moet \fIvorige\-versie\fP ingesteld worden op \fB2.0\-1~\fP. Dit | |
82 | heeft tot effect dat het configuratiebestand verwijderd wordt, zelfs als de | |
83 | gebruiker de vorige versie \fB1.0\-1\fP herbouwde als \fB1.0\-1lokaal1\fP. En in het | |
84 | geval waarin in een pakket een pad eerst een symbolische koppeling was (bij | |
85 | versie \fB1.0\-1\fP) en later een map werd (bij versie \fB2.0\-1\fP), maar u pas in | |
86 | versie \fB3.0\-1\fP de eigenlijke omschakeling doorvoert in de scripts van de | |
87 | pakketonderhouder, moet \fIvorige\-versie\fP ingesteld worden op \fB3.0\-1~\fP. | |
88 | .TP | |
89 | \fIpakket\fP | |
90 | De pakketnaam. Als het pakket “Multi\-Arch: same” is, moet deze parameter de | |
91 | architectuurkwalificatie bevatten, anders zou er gewoonlijk \fBgeen\fP | |
92 | architectuurkwalificatie in moeten voorkomen (aangezien dit geen | |
93 | cross\-grades zou toelaten, of de omschakeling van architectuurspecifiek naar | |
94 | architectuur \fBall\fP en vice versa). Indien de parameter leeg is of | |
95 | weggelaten werd, zullen de omgevingsvariabelen \fBDPKG_MAINTSCRIPT_PACKAGE\fP | |
96 | en \fBDPKG_MAINTSCRIPT_ARCH\fP (zoals die door \fBdpkg\fP ingesteld werden) | |
97 | gebruikt worden om een pakketnaam met architectuurkwalificatie te genereren. | |
98 | .TP | |
99 | \fB\-\-\fP | |
100 | Alle parameters van de scripts van de pakketonderhouder moeten doorgegeven | |
101 | worden aan het programma na \fB\-\-\fP. | |
102 | .SH "TAKEN IN VERBAND MET CONFIGURATIEBESTANDEN" | |
103 | .P | |
104 | Bij het opwaarderen van een pakket zal \fBdpkg\fP niet automatisch een conffile | |
105 | (configuratiebestand) (conffile = een configuratiebestand waarin \fBdpkg\fP | |
106 | door de gebruiker gemaakte aanpassingen moet behouden) verwijderen indien | |
107 | dat niet in de nieuwe versie voorkomt. Daarvoor zijn twee belangrijke | |
108 | redenen. De eerste is dat het configuratiebestand per ongeluk weggevallen | |
109 | kan zijn en dat de volgende versie dit zou kunnen herstellen en dat | |
110 | gebruikers hun aanpassingen niet graag verloren zouden zien gaan. De tweede | |
111 | is om pakketten de mogelijkheid te bieden om over te gaan van een door dpkg | |
112 | onderhouden configuratiebestand naar een bestand dat onderhouden wordt door | |
113 | de scripts van de pakketonderhouder, meestal met behulp van gereedschap | |
114 | zoals debconf of ucf. | |
115 | .P | |
116 | Dit houdt in dat indien een pakket de bedoeling heeft om een conffile | |
117 | (configuratiebestand) te hernoemen of te verwijderen, het dit expliciet moet | |
118 | doen en dat \fBdpkg\-maintscript\-helper\fP kan gebruikt worden in scripts van de | |
119 | pakketonderhouder om het verwijderen en verplaatsen van conffiles op een | |
120 | elegante manier uit te voeren. | |
121 | . | |
122 | .SS "Een configuratiebestand verwijderen" | |
123 | .P | |
124 | Indien een configuratiebestand volledig verwijderd wordt, moet het van | |
125 | schijf verwijderd worden, tenzij de gebruiker het aangepast heeft. Indien er | |
126 | lokale aanpassingen aangebracht werden, moeten die behouden blijven. Indien | |
127 | het opwaarderen van het pakket afbreekt, mag het pas in onbruik geraakte | |
128 | configuratiebestand niet verdwijnen. | |
129 | .P | |
130 | Dit alles wordt toegepast door het volgende shell\-fragment te plaatsen in de | |
131 | scripts \fBpreinst\fP, \fBpostinst\fP en \fBpostrm\fP van de pakketonderhouder: | |
132 | .P | |
133 | dpkg\-maintscript\-helper rm_conffile \e | |
134 | \fIconfiguratiebestand\fP \fIvorige\-versie\fP \fIpakket\fP \-\- "$@" | |
135 | .P | |
136 | \fIconfiguratiebestand\fP is de bestandsnaam van het te verwijderen | |
137 | configuratiebestand. | |
138 | .P | |
139 | Huidige toepassing: in het script \fBpreinst\fP controleert het of het | |
140 | configuratiebestand gewijzigd werd en hernoemt het ofwel naar | |
141 | \fIconfiguratiebestand\fP\fB.dpkg\-remove\fP (als het niet gewijzigd was) of naar | |
142 | \fIconfiguratiebestand\fP\fB.dpkg\-backup\fP (als het wel gewijzigd was). In het | |
143 | script \fBpostinst\fP wordt dit laatste bestand hernoemd naar | |
144 | \fIconfiguratiebestand\fP\fB.dpkg\-bak\fP en het wordt ter referentie behouden | |
145 | vermits het door de gebruiker gemaakte aanpassingen bevat. In het eerste | |
146 | geval (niet gewijzigd configuratiebestand) wordt het bestand | |
147 | verwijderd. Indien de opwaardering van het pakket afbreekt, herinstalleert | |
148 | het script \fBpostrm\fP het originele configuratiebestand. Tijdens het | |
149 | uitvoeren van een wisopdracht (purge) zal het script \fBpostrm\fP ook het tot | |
150 | dan bewaarde bestand \fB.dpkg\-bak\fP verwijderen. | |
151 | . | |
152 | .SS "Een configuratiebestand hernoemen" | |
153 | .P | |
154 | Indien een configuratiebestand verplaatst wordt van de ene locatie naar een | |
155 | andere, moet u er voor zorgen dat eventuele wijzigingen die de gebruiker | |
156 | maakte mee gaan. Op het eerste gezicht kan dit lijken op een eenvoudige | |
157 | aanpassing aan het script \fBpreinst\fP. Dat zal evenwel als resultaat hebben | |
158 | dat de gebruiker door \fBdpkg\fP gevraagd wordt om de aanpassingen aan het | |
159 | configuratiebestand goed te keuren, al heeft hij er in dit geval niets mee | |
160 | te maken. | |
161 | .P | |
162 | Een vlotte manier van hernoemen kan gerealiseerd worden door het volgende | |
163 | shell\-fragment te plaatsen in de scripts \fBpreinst\fP, \fBpostinst\fP en | |
164 | \fBpostrm\fP van de pakketonderhouder: | |
165 | .P | |
166 | dpkg\-maintscript\-helper mv_conffile \e | |
167 | \fIoud\-configuratiebestand\fP \fInieuw\-configuratiebestand\fP \fIvorige\-versie\fP \fIpakket\fP \-\- "$@" | |
168 | .P | |
169 | \fIoud\-configuratiebestand\fP en \fInieuw\-configuratiebestand\fP zijn de oude en | |
170 | de nieuwe naam van het configuratiebestand dat hernoemd moet worden. | |
171 | .P | |
172 | Huidige toepassing: het script \fBpreinst\fP controleert of het | |
173 | configuratiebestand gewijzigd werd. Indien dat het geval is wordt het | |
174 | gelaten waar het is, anders wordt het hernoemd naar | |
175 | \fIoud\-configuratiebestand\fP\fB.dpkg\-remove\fP. Bij het configureren verwijdert | |
176 | het script \fBpostinst\fP \fIoud\-configuratiebestand\fP\fB.dpkg\-remove\fP en hernoemt | |
177 | \fIoud\-configuratiebestand\fP naar \fInieuw\-configuratiebestand\fP als | |
178 | \fIoud\-configuratiebestand\fP nog steeds voorhanden is. Bij | |
179 | abort\-upgrade/abort\-install (afbreken van de opwaardering/installatie) | |
180 | hernoemt het script \fBpostrm\fP zo nodig | |
181 | \fIoud\-configuratiebestand\fP\fB.dpkg\-remove\fP terug naar | |
182 | \fIoud\-configuratiebestand\fP. | |
183 | . | |
184 | .SH "OMSCHAKELEN TUSSEN SYMBOLISCHE KOPPELING EN MAP" | |
185 | . | |
186 | Bij het opwaarderen van een pakket zal \fBdpkg\fP niet automatisch een | |
187 | symbolische koppeling omzetten naar een map of vice versa. Degradaties | |
188 | worden niet ondersteund en het pad wordt onveranderd gelaten. | |
189 | . | |
190 | .SS "Een symbolische koppeling omzetten naar een map" | |
191 | . | |
192 | Indien een symbolische koppeling veranderd wordt naar een echte map, moet u | |
193 | er voor zorgen dat de symbolische koppeling verwijderd wordt voor het | |
194 | uitpakken. Op het eerste gezicht kan dit een eenvoudige wijziging in het | |
195 | script \fBpreinst\fP lijken. Nochtans kan dit enige problemen opleveren in het | |
196 | geval de systeembeheerder de symbolische koppeling lokaal aanpaste of bij | |
197 | een degradatie van het pakket. | |
198 | .P | |
199 | Een vlotte manier van hernoemen kan gerealiseerd worden door het volgende | |
200 | shell\-fragment te plaatsen in de scripts \fBpreinst\fP, \fBpostinst\fP en | |
201 | \fBpostrm\fP van de pakketonderhouder: | |
202 | .P | |
203 | dpkg\-maintscript\-helper symlink_to_dir \e | |
204 | \fIpadnaam\fP \fIoud\-doel\fP \fIvorige\-versie\fP \fIpakket\fP \-\- "$@" | |
205 | .P | |
206 | \fIpadnaam\fP is de absolute naam van de oude symbolische koppeling (op het | |
207 | einde van de installatie zal het pad een map zijn) en \fIoud\-doel\fP is de naam | |
208 | van het doel van de vroegere symbolische koppeling in \fIpadnaam\fP. Die kan | |
209 | ofwel absoluut zijn ofwel relatief ten opzichte van de map die \fIpadnaam\fP | |
210 | bevat. | |
211 | .P | |
212 | Huidige toepassing: het script \fBpreinst\fP gaat na of de symbolische | |
213 | koppeling bestaat en verwijst naar \fIoud\-doel\fP. Is dit niet het geval dan | |
214 | wordt ze gerust gelaten. Anders wordt ze hernoemd naar | |
215 | \fIpadnaam\fP\fB.dpkg\-backup\fP. Tijdens het configureren verwijdert het script | |
216 | \fBpostinst\fP \fIpadnaam\fP\fB.dpkg\-backup\fP indien \fIpadnaam\fP\fB.dpkg\-backup\fP nog | |
217 | steeds een symbolische koppeling is. Bij een abort\-upgrade/abort\-install | |
218 | (afbreken van de opwaardering/installatie) hernoemt het script \fBpostrm\fP | |
219 | \fIpadnaam\fP\fB.dpkg\-backup\fP zo nodig terug naar \fIpadnaam\fP. | |
220 | . | |
221 | .SS "Een map omzetten naar een symbolische koppelling" | |
222 | . | |
223 | Indien een echte map omgezet wordt naar een symbolische koppeling, moet u | |
224 | ervoor zorgen dat de map verwijderd wordt voor het uitpakken. Dit kan op het | |
225 | eerste gezicht een eenvoudige aanpassing aan het script \fBpreinst\fP | |
226 | lijken. Nochtans kan dit enige problemen opleveren in het geval de map | |
227 | conffiles (configuratiebestanden) bevat, padnamen die eigendom zijn van | |
228 | andere pakketten of lokaal aangemaakte padnamen, of in het geval het pakket | |
229 | gedegradeerd wordt. | |
230 | .P | |
231 | Een elegante omschakeling kan gerealiseerd worden door het volgende | |
232 | shell\-fragment op te nemen in de scripts \fBpreinst\fP, \fBpostinst\fP en | |
233 | \fBpostrm\fP van de pakketonderhouder: | |
234 | .P | |
235 | dpkg\-maintscript\-helper dir_to_symlink \e | |
236 | \fIpadnaam\fP \fInieuw\-doel\fP \fIvorige\-versie\fP \fIpakket\fP \-\- "$@" | |
237 | .P | |
238 | \fIpadnaam\fP is de absolute naam van de oude map (het pad zal op het einde van | |
239 | de installatie een symbolische koppeling zijn) en \fInieuw\-doel\fP is het doel | |
240 | van de nieuwe symbolische koppeling in \fIpadnaam\fP. Dit kan ofwel absoluut of | |
241 | relatief zijn ten opzichte van de map die \fIpadnaam\fP bevat. | |
242 | .P | |
243 | Huidige toepassing: het script \fBpreinst\fP controleert of de map bestaat en | |
244 | geen conffiles (configuratiebestanden), padnamen die eigendom zijn van | |
245 | andere pakketten of lokaal aangemaakte padnamen bevat. Is dat niet het | |
246 | geval, dan wordt ze gerust gelaten. Anders wordt ze hernoemd naar | |
247 | \fIpadnaam\fP\fB.dpkg\-backup\fP en wordt een lege voorlopige map \fIpadnaam\fP | |
248 | aangemaakt die met een bestand gemarkeerd wordt, zodat dpkg ze kan | |
249 | opvolgen. Tijdens het configureren beëindigt het script \fBpostinst\fP de | |
250 | overgang indien \fIpadnaam\fP\fB.dpkg\-backup\fP nog steeds een map is en | |
251 | \fIpadnaam\fP de voorlopige map. Het verwijdert het bestand dat de voorlopige | |
252 | map markeert en verplaatst de zopas in de map aangemaakte bestanden naar het | |
253 | doel van de symbolische koppeling \fInieuw\-doel\fP/, vervangt de nu lege | |
254 | voorlopige map \fIpadnaam\fP door een symbolische koppeling naar \fInieuw\-doel\fP | |
255 | en verwijdert \fIpadnaam\fP\fB.dpkg\-backup\fP. In geval van | |
256 | abort\-upgrade/abort\-install (afbreken van de opwaardering/installatie) | |
257 | hernoemt het script \fBpostrm\fP zo nodig \fIpadnaam\fP\fB.dpkg\-backup\fP terug naar | |
258 | \fIpadnaam\fP. | |
259 | . | |
260 | .SH "DE INTEGRATIE IN PAKKETTEN" | |
261 | .P | |
262 | Gelieve bij het gebruiken van een hulpmiddel voor het verpakken na te gaan | |
263 | of er geen systeemeigen integratie in \fBdpkg\-maintscript\-helper\fP van | |
264 | bestaat, wat het leven voor u makkelijker zou maken. Zie bijvoorbeeld | |
265 | \fBdh_installdeb\fP(1). | |
266 | .P | |
267 | Gegeven het feit dat \fBdpkg\-maintscript\-helper\fP gebruikt wordt in het script | |
268 | \fBpreinst\fP, houdt een onvoorwaardelijk gebruik ervan een voorafgaande | |
269 | vereiste in om te kunnen garanderen dat de benodigde versie van \fBdpkg\fP | |
270 | voordien uitgepakt werd. De benodigde versie hangt af van het gebruikte | |
271 | commando. Voor \fBrm_conffile\fP en \fBmv_conffile\fP is dat 1.15.7.2. Voor | |
272 | \fBsymlink_to_dir\fP en \fBdir_to_symlink\fP is dat 1.17.14: | |
273 | .P | |
274 | \fBPre\-Depends:\fP dpkg (>= 1.17.14) | |
275 | .P | |
276 | Maar in veel gevallen is de operatie die door het programma uitgevoerd | |
277 | wordt, niet kritiek van aard voor het pakket en in plaats van een | |
278 | voorafgaande vereiste te gebruiken, kunnen we ook het programma pas | |
279 | aanroepen als we weten dat het benodigde programma ondersteund wordt door de | |
280 | huidige geïnstalleerde versie van \fBdpkg\fP: | |
281 | .P | |
282 | if dpkg\-maintscript\-helper supports \fIcommando\fP; then | |
283 | dpkg\-maintscript\-helper \fIcommando\fP ... | |
284 | fi | |
285 | .P | |
286 | Het commando \fBsupports\fP geeft in geval van succes een 0 terug en anders een | |
287 | 1. Het commando \fBsupports\fP gaat na of de omgevingsvariabelen die ingesteld | |
288 | worden door dpkg en die het script nodig heeft, voorhanden zijn. Indien de | |
289 | omgeving niet voldoet, zal dit als een mislukking beschouwd worden. | |
290 | .SH "ZIE OOK" | |
291 | .ad l | |
292 | \fBdh_installdeb\fP(1). |