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