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\-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. |