dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / sv / 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\-sviten
25.nh
26.SH NAMN
27dpkg\-maintscript\-helper \- går runt kända dpkg\-begränsningar i paketskript
28.
29.SH SYNOPS
30\fBdpkg\-maintscript\-helper\fP \fIkommando\fP [\fIflagga\fP...] \fB\-\-\fP
31\fImaint\-script\-flagga\fP...
32.
33.SH "KOMMANDON OCH PARAMETRAR"
34.P
35\fBsupports\fP \fIkommando\fP
36.P
37\fBrm_conffile\fP \fIkonffil\fP [\fItidigare\-version\fP [\fIpaket\fP]]
38.P
39\fBmv_conffile\fP \fIgammalkonffil\fP \fInykonffil\fP [\fItidigare\-version\fP
40[\fIpaket\fP]]
41.P
42\fBsymlink_to_dir\fP \fIsökväg\fP \fIgammalt\-mål\fP [\fItidigare\-version\fP [\fIpaket\fP]]
43.P
44\fBdir_to_symlink\fP \fIsökväg\fP \fInytt\-mål\fP [\fItidigare\-version\fP [\fIpaket\fP]]
45.
46.SH BESKRIVNING
47.P
48Programmet skrevs för att köras i paketskript för att utföra en del åtgärder
49som \fBdpkg\fP (ännu) inte själv kan hantera, antingen på grund av designval
50eller på grund av nuvarande begränsningar.
51.P
52Många av dessa åtgärder kräver samordnade åtgärder från flera paketskript
53(\fBpreint\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). För att undvika misstag
54räcker det att lägga in ett och samma anrop i alla skript, varpå programmet
55anpassar sitt beteende beroende på miljövariabeln \fBDPKG_MAINTSCRIPT_NAME\fP
56och på paketskriptets parametrar, vilka du måste vidaresända efter dubbla
57bindestreck.
58.
59.SH "DELADE PARAMETRAR"
60.TP
61\fItidigare\-version\fP
62Anger den senaste version av paketet vars uppgradering skall orsaka
63händelsen. Det är viktigt att beräkna \fItidigare\-version\fP korrekt så att
64operationerna utförs korrekt även om användaren byggt om paketet med en
65lokal version. Om \fItidigare\-version\fP är tom eller utelämnas försöks
66operationen vid varje uppgradering (notera: det är säkrare att ange
67versionen och endast försöka utföra operationen en gång).
68
69Om konffilen inte har sänts med i flera versioner och du nu uppdaterar
70utvecklarskripten till att städa bort den gamla filen bör
71\fItidigare\-version\fP baseras på den version av paketet du nu förbereder, inte
72den första version av paketet som saknade konffilen. Detta gäller på samma
73sätt för alla andra åtgärder.
74
75Som ett exempel, för en konffil som togs bort i version \fB2.0\-1\fP av ett
76paket bör \fItidigareversion\fP sättas till \fB2.0\-1~\fP. Detta får konffilen att
77tas bort även om användaren bygger om den tidigare versionen \fB1.0\-1\fP som
78\fB1.0\-1local1\fP. Eller ett paket som bytt en sökväg från att vara en
79symbolisk länk (skeppad i version \fB1.0\-1\fP) till en katalog (skeppad i
80version \fB2.0\-1\fP), men bara utfört själva ändringen i utvecklarskripten i
81version \fB3.0\-1\fP, bör sätta \fItidigareversion\fP till \fB3.0\-1~\fP.
82.TP
83\fIpaket\fP
84The package name. When the package is “Multi\-Arch: same” this parameter must
85include the architecture qualifier, otherwise it should \fBnot\fP usually
86include the architecture qualifier (as it would disallow cross\-grades, or
87switching from being architecture specific to architecture \fBall\fP or vice
88versa). If the parameter is empty or omitted, the
89\fBDPKG_MAINTSCRIPT_PACKAGE\fP and \fBDPKG_MAINTSCRIPT_ARCH\fP environment
90variables (as set by \fBdpkg\fP) will be used to generate an arch\-qualified
91package name.
92.TP
93\fB\-\-\fP
94Alla parametrar till utvecklarskripten måste vidaresändas till programmen
95efter \fB\-\-\fP.
96.SH "KONFFIL\-RELATERADE ÅTGÄRDER"
97.P
98När ett paket uppgraderas kommer \fBdpkg\fP inte att automatiskt ta bort en
99konffil (en konfigurationsfil för vilken \fBdpkg\fP skall behålla användarens
100ändringar) om den inte finns i den nya versionen. Det finns två
101grundläggande skäl till detta; den första är att konffilen kan ha tappats av
102misstag och nästa version kan komma att återställa den, varpå användaren
103inte vill tappa sina ändringar. Den andra är att för att göra det möjligt
104för paket att gå över från en dpkg\-hanterad konffil till en fil som hanteras
105av paketets skript, vanligtvis genom ett verktyg som debconf eller ucf.
106.P
107Det innebär att, om paketet menar att byta namn eller ta bort en
108konfigurationsfil, så måste det göra så explicit, och då kan
109\fBdpkg\-maintscript\-helper\fP användas för att implementera en elegant
110borttagning och flyttning av konffiler i paketscripten.
111.
112.SS "Ta bort en konffil"
113.P
114Om en konffil helt tas bort bör den tas bort från disk, såvida inte
115användaren har modifierat den. Om det finns lokala ändringar bör de
116bibehållas. Om paketuppgraderingen avbryts bör inte konffilen som just blev
117föråldras försvinna.
118.P
119Allt detta implementeras genom att lägga in följande skalkod i paketskripten
120\fBpreinst\fP, \fBpostinst\fP och \fBpostrm\fP:
121.P
122 dpkg\-maintscript\-helper rm_conffile \e
123 \fIkonffil\fP \fItidigare\-version\fP \fIpaket\fP \-\- "$@"
124.P
125\fIkonffil\fP är namnet på konffilen som skall tas bort.
126.P
127Aktuell implementation: i \fBpreinst\fP kontrolleras om konffilen ändrades och
128i så fall byts namnet på den till antingen \fIkonffil\fP\fB.dpkg\-remove\fP (om
129inte modifierad) eller till \fIkonffil\fP\fB.dpkg\-backup\fP (om modifierad). I
130\fBpostinst\fP byts namnet på den sistnämnda filen till \fIkonffil\fP\fB.dpkg\-bak\fP
131och behålls som referens om den innehåller ändringar av användaren, medan
132den tidigare kommer att tas bort. Om paketuppgraderingen avbryts kommer
133\fBpostrm\fP att ominstallera den ursprungliga konffilen. Vid borttagning
134kommer \fBpostrm\fP även att ta bort \fB.dpkg\-bak\fP\-filen som behållits fram till
135dess.
136.
137.SS "Byta namn på en konffil"
138.P
139Om en konffil flyttas från en plats till en annan måste du se till att du
140flyttar med eventuella ändringar gjorda av användaren. Detta kan först verka
141vara en enkel ändring av \fBpreinst\fP\-skriptet, men det kommer leda till att
142användaren ombeds att godkänna ändringar i konffilen för \fBdpkg\fP, även om
143denne inte är ansvarig för dem.
144.P
145En elegant namnändring kan implementeras genom att lägga in följande skalkod
146i paketskripten \fBpreinst\fP, \fBpostinst\fP och \fBpostrm\fP:
147.P
148 dpkg\-maintscript\-helper mv_conffile \e
149 \fIgammalkonffil\fP \fInykonffil\fP \fItidigare\-version\fP \fIpaket\fP \-\- "$@"
150.P
151\fIgammalkonffil\fP och \fInykonffil\fP är de gamla och nya namnen på konffilen
152vars namn skall bytas.
153.P
154Aktuell implementation: I \fBpreinst\fP kontrolleras om konffilen har ändrats,
155om ja lämnas den kvar på plats, annars byts namnet på den till
156\fIgammalkonffil\fP\fB.dpkg\-remove\fP. Vid konfigurering tar \fBpostinst\fP bort
157\fIgammalkonffil\fP\fB.dpkg\-remove\fP och byter namn på \fIgammalkonffil\fP till
158\fInykonffil\fP om \fIgammalkonffil\fP fortfarande finns. Vid avbruten
159uppgradering eller installation byter \fBpostrm\fP tillbaka namnet från
160\fIgammalkonffil\fP\fB.dpkg\-remove\fP till \fIgammalkonffil\fP om så behövs.
161.
162.SH "VÄXLING MELLAN SYMLÄNKAR OCH KATALOGER"
163.
164Vid uppgradering av ett paket kommer \fBdpkg\fP inte att automatiskt byta ut en
165symbolisk länk mot en katalog, eller omvänt. Nedgraderingar stöds inte och
166sökvägen kommer lämnas som den var.
167.
168.SS "Byta en symbolisk länk mot en katalog"
169.
170Om en symbolisk länk byts mot en riktig katalog måste du se till att den
171symboliska länken tas bort innan uppackningen. Detta kan först verka vara en
172enkel ändring av \fBpreinst\fP\-skriptet, men det kommer leda till vissa problem
173om den lokale administratören har justerat den symboliska länken, eller om
174paketet skall nedgraderas.
175.P
176En elegant namnändring kan implementeras genom att lägga in följande skalkod
177i paketskripten \fBpreinst\fP, \fBpostinst\fP och \fBpostrm\fP:
178.P
179 dpkg\-maintscript\-helper symlink_to_dir \e
180 \fIsökväg\fP \fIgammalt\-mål\fP \fItidigare\-version\fP \fIpaket\fP \-\- "$@"
181.P
182\fIsökväg\fP är den absoluta sökvägen för den gamla symboliska länken (sökvägen
183kommer vara en katalog när installationen är färdig) och \fIgammalt\-mål\fP är
184målet på den tidigare symboliska länken i \fIsökväg\fP. Den kan antingen vara
185absolut eller relativ till katalogen som innehåller \fIsökväg\fP.
186.P
187Aktuell implementation: I \fBpreinst\fP kontrolleras om den symboliska länken
188finns och pekar på \fIgammalt\-mål\fP, om inte lämnas den kvar, i annat fall
189byts namnet ut mot \fIsökväg\fP\fB.dpkg\-backup\fP. Vid konfigurering tar
190\fBpostinst\fP bort \fIsökväg\fP\fB.dpkg\-bakcup\fP om \fIsökväg\fP\fB.dpkg\-backup\fP
191fortfarande är en symbolisk länk. Vid avbruten uppgradering eller
192installation byter \fBpostrm\fP tillbaka namnet från \fIsökväg\fP\fB.dpkg\-bakcup\fP
193till \fIsökväg\fP om så behövs.
194.
195.SS "Byta en symbolisk länk mot en katalog"
196.
197Om en riktig katalog byts mot en symbolisk länk måste du se till att
198katalogen tas bort innan uppackningen. Detta kan först verka vara en enkel
199ändring av \fBpreinst\fP\-skriptet, men det kommer leda till vissa problem om
200katalogen innehåller konffiler, sökvägar som ägs av andra paket, lokalt
201skapade sökvägar, eller om paketet skall nedgraderas.
202.P
203Ett elegant byte kan implementeras genom att lägga in följande skalkod i
204paketskripten \fBpreinst\fP, \fBpostinst\fP och \fBpostrm\fP:
205.P
206 dpkg\-maintscript\-helper dir_to_symlink \e
207 \fIsökväg\fP \fInytt\-mål\fP \fItidigare\-version\fP \fIpaket\fP \-\- "$@"
208.P
209\fIsökväg\fP är det absoluta namnet på den gamla katalogen (sökvägen kommer
210vara en symbolisk länk när installationen är färdig) och \fInytt\-mål\fP är
211målet på den nya symboliska länken i \fIsökväg\fP. Den kan antingen vara
212absolut eller relativ till katalogen som innehåller \fIsökväg\fP.
213.P
214Aktuell implementation: I \fBpreinst\fP kontrolleras om katalogen finns, inte
215innehåller konffiler, sökvägar som ägs av andra paket, eller lokalt skapade
216sökvägar, om inte så kommer den lämnas kvar, annars byts namnet ut mot
217\fIsökväg\fP\fB.dpkg\-backup\fP och en tom samlingsplatskatalog skapas i \fIsökväg\fP,
218markerad med en fil så att dpkg kan hålla ordning på den. Vid konfigurering
219slutför \fBpostinst\fP växlingen om \fIsökväg\fP\fB.dpkg\-backup\fP fortfarande är en
220katalog och \fIsökväg\fP är samlingsplatskatalogen; den tar bort
221märkningsfilen, flyttar nyligen skapade filer inuti samlingskatalogen till
222målet för den symboliska länken \fInytt\-mål\fP/, ersätter den nu tomma
223samlingskatalogen \fIsökväg\fP med en symbolisk länk till \fInytt\-mål\fP och tar
224bort \fIsökväg\fP\fB.dpkg\-backup\fP. Vid avbruten uppgradering eller installation
225byter \fBpostrm\fP tillbaka namnet från \fIsökväg\fP\fB.dpkg\-backup\fP till \fIsökväg\fP
226om så behövs.
227.
228.SH "INTEGRERA I PAKET"
229.P
230När ett paketeringshjälpprogram används, kontrollera att det har direkt
231integrering med \fBdpkg\-maintscript\-helper\fP, något som kan göra ditt liv
232enklare. Se till exempel \fBdh_installdeb\fP(1).
233.P
234Givet att \fBdpkg\-maintscript\-helper\fP används i \fBpreinst\fP så innebär detta
235villkorslöst att ett förhandsberoende ("pre\-dependency") krävs för att
236försäkra att den nödvändiga versionen av \fBdpkg\fP redan har packats upp. Den
237version som krävs beror på vilket kommando som används, för \fBrm_conffile\fP
238och \fBmv_conffile\fP är det 1.15.7.2, för \fBsymlink_to_dir\fP och
239\fBdir_to_symlnk\fP är det 1.17.14:
240.P
241 \fBPre\-Depends:\fP dpkg (>= 1.17.14)
242.P
243Men i många fall är operationen som utförs av programmet inte kritiskt för
244paketet, och istället för att använda ett förhandsberoende kan vi anropa
245programmet endast om vi vet att det nödvändiga kommandot stöds av den nu
246installerade \fBdpkg\fP:
247.P
248 if dpkg\-maintscript\-helper supports \fIkommando\fP; then
249 dpkg\-maintscript\-helper \fIkommando\fP ...
250 fi
251.P
252Kommandot \fBsupports\fP returnerar 0 vid framgång, annars 1. Kommandot
253\fBsupports\fP kontrollerar om miljövariablerna som sätts av dpkg och som krävs
254av skriptet är närvarande, och kommer anse det som ett fel om
255miljövariablerna inte är tillräckliga.
256.SH "SE ÄVEN"
257.ad l
258\fBdh_installdeb\fP(1).
259.SH ÖVERSÄTTNING
260Peter Krefting och Daniel Nylander.