chiark / gitweb /
dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / nl / dpkg-maintscript-helper.man
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).