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