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% "suite dpkg" | |
25 | .nh | |
26 | .SH NOME | |
27 | dpkg\-maintscript\-helper \- aggira limiti noti di dpkg negli script del | |
28 | manutentore | |
29 | . | |
30 | .SH SINTASSI | |
31 | \fBdpkg\-maintscript\-helper\fP \fIcomando\fP [\fIparametro\fP...] \fB\-\-\fP | |
32 | \fIparametro\-script\-manut\fP... | |
33 | . | |
34 | .SH "COMANDI E PARAMETRI" | |
35 | .P | |
36 | \fBsupports\fP \fIcomando\fP | |
37 | .P | |
38 | \fBrm_conffile\fP \fIfileconf\fP [\fIversione\-prec\fP [\fIpacchetto\fP]] | |
39 | .P | |
40 | \fBmv_conffile\fP \fIvecchio\-fileconf\fP \fInuovo\-fileconf\fP [\fIversione\-prec\fP | |
41 | [\fIpacchetto\fP]] | |
42 | .P | |
43 | \fBsymlink_to_dir\fP \fIpercorso\fP \fIvecchia\-destinaz\fP [\fIversione\-prec\fP | |
44 | [\fIpacchetto\fP]] | |
45 | .P | |
46 | \fBdir_to_symlink\fP \fIpercorso\fP \fInuova\-destinaz\fP [\fIversione\-prec\fP | |
47 | [\fIpacchetto\fP]] | |
48 | . | |
49 | .SH DESCRIZIONE | |
50 | .P | |
51 | Questo programma è progettato per essere eseguito dall'interno di script dei | |
52 | manutentori per effettuare alcuni compiti che \fBdpkg\fP non può (ancora) | |
53 | gestire in modo nativo a causa di decisioni progettuali oppure per | |
54 | limitazioni attuali. | |
55 | .P | |
56 | Molti di questi compiti richiedono azioni coordinate da parte di diversi | |
57 | script dei manutentori (\fBpreinst\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). Per | |
58 | evitare sbagli basta mettere la stessa chiamata in tutti gli script e il | |
59 | programma adatterà automaticamente il suo comportamento sulla base della | |
60 | variabile d'ambiente \fBDPKG_MAINTSCRIPT_NAME\fP e sugli argomenti per gli | |
61 | script dei manutentori che devono essere passati dopo un doppio trattino. | |
62 | . | |
63 | .SH "PARAMETRI COMUNI" | |
64 | .TP | |
65 | \fIversione\-prec\fP | |
66 | Definisce la più recente versione del pacchetto il cui aggiornamento | |
67 | dovrebbe attivare l'operazione. È importante calcolare correttamente il | |
68 | valore di \fIversione\-prec\fP in modo che le operazioni siano effettuate in | |
69 | modo corretto anche se l'utente ha ricompilato il pacchetto con una versione | |
70 | locale. Se \fIversione\-prec\fP è vuota o viene omessa, allora l'operazione | |
71 | viene tentata ad ogni aggiornamento (notare: è più sicuro fornire la | |
72 | versione e far sì che l'operazione venga tentata una sola volta). | |
73 | ||
74 | Se il file di configurazione non è stato fornito per diverse versioni, e si | |
75 | sta ora cercando di modificare gli script del manutentore per ripulire il | |
76 | file obsoleto, \fIversione\-prec\fP dovrebbe essere basata sulla versione del | |
77 | pacchetto che si sta preparando ora, non sulla prima versione del pacchetto | |
78 | a cui mancava il file di configurazione. Ciò è vero similmente per tutte le | |
79 | altre azioni. | |
80 | ||
81 | Per esempio, per un file di configurazione rimosso nella versione \fB2.0\-1\fP | |
82 | di un pacchetto, \fIversione\-prec\fP dovrebbe essere impostata a \fB2.0\-1~\fP. Ciò | |
83 | farà sì che il file di configurazione sia rimosso anche se l'utente ha | |
84 | ricompilato la versione precedente \fB1.0\-1\fP come \fB1.0\-1local1\fP. Oppure un | |
85 | pacchetto che passa un percorso da un collegamento simbolico (fornito nella | |
86 | versione \fB1.0\-1\fP) ad una directory (fornita nella versione \fB2.0\-1\fP), ma | |
87 | che effettua l'effettivo cambiamento nello script del manutentore nella | |
88 | versione \fB3.0\-1\fP, dovrebbe impostare \fIversione\-prec\fP a \fB3.0\-1~\fP. | |
89 | .TP | |
90 | \fBpacchetto\fP | |
91 | The package name. When the package is “Multi\-Arch: same” this parameter must | |
92 | include the architecture qualifier, otherwise it should \fBnot\fP usually | |
93 | include the architecture qualifier (as it would disallow cross\-grades, or | |
94 | switching from being architecture specific to architecture \fBall\fP or vice | |
95 | versa). If the parameter is empty or omitted, the | |
96 | \fBDPKG_MAINTSCRIPT_PACKAGE\fP and \fBDPKG_MAINTSCRIPT_ARCH\fP environment | |
97 | variables (as set by \fBdpkg\fP) will be used to generate an arch\-qualified | |
98 | package name. | |
99 | .TP | |
100 | \fB\-\-\fP | |
101 | Tutti i parametri degli script dei manutentori devono essere passati al | |
102 | programma dopo \fB\-\-\fP. | |
103 | .SH "COMPITI RELATIVI AI FILE DI CONFIGURAZIONE" | |
104 | .P | |
105 | Quando aggiorna un pacchetto, \fBdpkg\fP non rimuoverà automaticamente un file | |
106 | di configurazione (un file di configurazione per il quale \fBdpkg\fP dovrebbe | |
107 | preservare i cambiamenti dell'utente) se non è presente nella versione più | |
108 | nuova. Ci sono due ragioni principali per questo comportamento. La prima è | |
109 | che il file di configurazione potrebbe essere stato tolto per sbaglio e la | |
110 | successiva versione potrebbe ripristinarlo e gli utenti non vorrebbero | |
111 | vedere le proprie modifiche buttate al vento. La seconda è di permettere ai | |
112 | pacchetti di transitare file da un file di configurazione mantenuto da dpkg | |
113 | a un file mantenuto dagli script del manutentore del pacchetto, solitamente | |
114 | con uno strumento come debconf o ucf. | |
115 | .P | |
116 | Ciò significa che se un pacchetto deve rinominare o rimuovere un file di | |
117 | configurazione, deve farlo esplicitamente e \fBdpkg\-maintscript\-helper\fP può | |
118 | essere usato per implementare in modo pulito la cancellazione e lo | |
119 | spostamento di file di configurazione all'interno di script dei manutentori. | |
120 | . | |
121 | .SS "Rimozione di un file di configurazione" | |
122 | .P | |
123 | Se un file di configurazione viene completamente rimosso, dovrebbe essere | |
124 | rimosso dal disco a meno che l'utente non l'abbia modificato. Se ci sono | |
125 | modifiche locali, queste dovrebbero essere preservate. Se l'aggiornamento | |
126 | del pacchetto fallisce, il file di configurazione appena reso obsoleto non | |
127 | dovrebbe sparire. | |
128 | .P | |
129 | Tutto ciò è implementato mettendo il seguente frammento shell negli script | |
130 | del manutentore \fBpreinst\fP, \fBpostinst\fP e \fBpostrm\fP. | |
131 | .P | |
132 | dpkg\-maintscript\-helper rm_conffile \e | |
133 | \fIfileconf\fP \fIversione\-prec\fP \fIpacchetto\fP \-\- "$@" | |
134 | .P | |
135 | \fIfileconf\fP è il nome del file di configurazione da rimuovere. | |
136 | .P | |
137 | Attuale implementazione: in \fBpreinst\fP, controlla se il file di | |
138 | configurazione è stato modificato e lo rinomina in | |
139 | \fIfileconf\fP\fB.dpkg\-remove\fP (se non modificato) o \fIfileconf\fP\fB.dpkg\-backup\fP | |
140 | (se modificato). In \fBpostinst\fP, quest'ultimo file viene rinominato in | |
141 | \fIfileconf\fP\fB.dpkg\-bak\fP e mantenuto per riferimento dato che contiene le | |
142 | modifiche dell'utente ma il primo viene rimosso. Se l'aggiornamento del | |
143 | pacchetto fallisce, \fBpostrm\fP reinstalla il file di configurazione | |
144 | originale. Durante l'eliminazione completa, \fBpostrm\fP elimina anche il file | |
145 | \&\fB.dpkg\-bak\fP fino ad allora preservato. | |
146 | . | |
147 | .SS "Rinominare un file di configurazione" | |
148 | .P | |
149 | Se un file di configurazione viene spostato da una posizione ad un'altra, è | |
150 | necessario assicurarsi di spostare qualsiasi modifica fatta | |
151 | dall'utente. Questo può sembrare a prima vista un semplice cambiamento dello | |
152 | script \fBpreinst\fP, tuttavia ciò avrebbe come risultato che \fBdpkg\fP | |
153 | chiederebbe all'utente di approvare le modifiche al file di configurazione | |
154 | anche se egli non ne è responsabile. | |
155 | .P | |
156 | Un cambio di nome pulito può essere implementato mettendo il seguente | |
157 | frammento shell negli script del manutentore \fBpreinst\fP, \fBpostinst\fP e | |
158 | \fBpostrm\fP. | |
159 | .P | |
160 | dpkg\-maintscript\-helper mv_conffile \e | |
161 | \fIvecchio\-fileconf\fP \fInuovo\-fileconf\fP \fIversione\-prec\fP \fIpacchetto\fP \-\- "$@" | |
162 | .P | |
163 | \fIvecchio\-fileconf\fP e \fInuovo\-fileconf\fP sono il nome vecchio e quello nuovo | |
164 | del file di configurazione da rinominare. | |
165 | .P | |
166 | Attuale implementazione: \fBpreinst\fP controlla se il file di configurazione è | |
167 | stato modificato; se lo è stato viene lasciato al suo posto altrimenti viene | |
168 | rinominato in \fIvecchio\-fileconf\fP\fB.dpkg\-remove\fP. Durante la configurazione, | |
169 | \fBpostinst\fP rimuove \fIvecchio\-fileconf\fP\fB.dpkg\-remove\fP e rinomina | |
170 | \fIvecchio\-fileconf\fP in \fInuovo\-fileconf\fP se \fIvecchio\-fileconf\fP è ancora | |
171 | disponibile. In caso di aggiornamento o installazione falliti, \fBpostrm\fP | |
172 | rinomina \fIvecchio\-fileconf\fP\fB.dpkg\-remove\fP nuovamente in | |
173 | \fIvecchio\-fileconf\fP, se necessario. | |
174 | . | |
175 | .SH "CAMBIAMENTI A COLLEGAMENTI SIMBOLICI E DIRECTORY" | |
176 | . | |
177 | Quando si aggiorna un pacchetto, \fBdpkg\fP non modifica automaticamente un | |
178 | collegamento simbolico in una directory o viceversa. Le retrocessioni di | |
179 | versione non sono supportate e il percorso verrà lasciato come è. | |
180 | . | |
181 | .SS "Passare da un collegamento simbolico ad una directory" | |
182 | . | |
183 | Se si passa da un collegamento simbolico ad una directory reale, è | |
184 | necessario assicurarsi prima dello spacchettamento che il collegamento | |
185 | simbolico venga rimosso. Ciò può sembrare a prima vista una semplice | |
186 | modifica allo script \fBpreinst\fP, tuttavia ciò risulterebbe in alcuni | |
187 | problemi nel caso di personalizzazioni locali dell'amministratore sul | |
188 | collegamento simbolico o in caso di retrocessione del pacchetto. | |
189 | .P | |
190 | Un cambio di nome pulito può essere implementato mettendo il seguente | |
191 | frammento shell negli script del manutentore \fBpreinst\fP, \fBpostinst\fP e | |
192 | \fBpostrm\fP. | |
193 | .P | |
194 | dpkg\-maintscript\-helper symlink_to_dir \e | |
195 | \fIpercorso\fP \fIvecchia\-destinaz\fP \fIversione\-prec\fP \fIpacchetto\fP \-\- "$@" | |
196 | .P | |
197 | \fIpercorso\fP è il nome assoluto del vecchio collegamento simbolico (il | |
198 | percorso sarà una directory al termine dell'installazione) e | |
199 | \fIvecchia\-destinaz\fP è il nome della destinazione del vecchio collegamento | |
200 | simbolico \fIpercorso\fP. Può essere sia assoluto sia relativo alla directory | |
201 | che contiene \fIpercorso\fP. | |
202 | .P | |
203 | Attuale implementazione: \fBpreinst\fP controlla se il collegamento simbolico | |
204 | esiste e punta a \fIvecchia\-destinaz\fP, se non è così allora viene lasciato al | |
205 | suo posto, altrimenti viene rinominato in | |
206 | \fIpercorso\fP\fB.dpkg\-backup\fP. Durante la configurazione \fBpostinst\fP rimuove | |
207 | \fIpercorso\fP\fB.dpkg\-backup\fP se questo è ancora un collegamento simbolico. In | |
208 | caso di aggiornamento o installazione falliti, \fBpostrm\fP rinomina | |
209 | \fIpercorso\fP\fB.dpkg\-backup\fP nuovamente in \fIpercorso\fP se necessario. | |
210 | . | |
211 | .SS "Passare da una directory a un collegamento simbolico" | |
212 | . | |
213 | Se si passa da una directory reale a un collegamento simbolico, è necessario | |
214 | assicurarsi prima dello spacchettamento che la directory venga rimossa. Ciò | |
215 | può sembrare a prima vista una semplice modifica allo script \fBpreinst\fP, | |
216 | tuttavia ciò risulterebbe in alcuni problemi nel caso in cui la directory | |
217 | contenga file di configurazione, nomi di percorso di proprietà di altri | |
218 | pacchetti, nomi di percorso creati localmente, oppure in caso di | |
219 | retrocessione del pacchetto. | |
220 | .P | |
221 | Un passaggio pulito può essere implementato mettendo il seguente frammento | |
222 | shell negli script del manutentore \fBpreinst\fP, \fBpostinst\fP e \fBpostrm\fP. | |
223 | .P | |
224 | dpkg\-maintscript\-helper dir_to_symlink \e | |
225 | \fIpercorso\fP \fInuova\-destinaz\fP \fIversione\-prec\fP \fIpacchetto\fP \-\- "$@" | |
226 | .P | |
227 | \fIpercorso\fP è il nome assoluto della vecchia directory (il percorso sarà un | |
228 | collegamento simbolico al termine dell'installazione) e \fInuova\-destinaz\fP è | |
229 | il nome del nuovo collegamento simbolico \fIpercorso\fP. Può essere sia | |
230 | assoluto sia relativo alla directory che contiene \fIpercorso\fP. | |
231 | .P | |
232 | Attuale implementazione: \fBpreinst\fP controlla se la directory esiste, non | |
233 | contiene file di configurazione, percorsi di proprietà di altri pacchetti o | |
234 | percorsi creati localmente; se non è così è lasciata al suo posto, | |
235 | altrimenti viene rinominata in \fIpercorso\fP\fB.dpkg\-backup\fP e viene creata una | |
236 | nuova directory vuota chiamata \fIpercorso\fP marcata con un file in modo che | |
237 | dpkg possa tenerne traccia. Durante la configurazione \fBpostinst\fP finisce il | |
238 | passaggio se \fIpercorso\fP\fB.dpkg\-backup\fP è ancora una directory e \fIpercorso\fP | |
239 | è la directory contrassegnata; rimuove il file che contrassegna la | |
240 | directory, muove i file appena creati all'interno della directory | |
241 | contrassegnata nella destinazione del collegamento simbolico | |
242 | \fInuova\-destinaz\fP/, sostituisce la directory contrassegnata \fIpercorso\fP ora | |
243 | vuota con un collegamento simbolico a \fInuova\-destinaz\fP e rimuove | |
244 | \fIpercorso\fP\fB.dpkg\-backup\fP. in caso di aggiornamento o installazione | |
245 | falliti, \fBpostrm\fP rinomina \fIpercorso\fP\fB.dpkg\-backup\fP nuovamente in | |
246 | \fIpercorso\fP se necessario. | |
247 | . | |
248 | .SH "INTEGRAZIONE NEI PACCHETTI" | |
249 | .P | |
250 | Quando si usa uno strumento di aiuto alla pacchettizzazione, controllare se | |
251 | ha l'integrazione nativa con \fBdpkg\-maintscript\-helper\fP, che può rendere la | |
252 | vita più semplice. Vedere ad esempio \fBdh_installdeb\fP(1). | |
253 | .P | |
254 | Dato che \fBdpkg\-maintscript\-helper\fP viene usato in \fBpreinst\fP, il suo uso | |
255 | incondizionato richiede una pre\-dipendenza per assicurare che sia stata già | |
256 | spacchettata la versione richiesta di \fBdpkg\fP. La versione richiesta dipende | |
257 | dal comando usato: per \fBrm_conffile\fP e \fBmv_conffile\fP è 1.15.7.2, per | |
258 | \fBsymlink_to_dir\fP e \fBdir_to_symlink\fP è 1.17.14: | |
259 | .P | |
260 | \fBPre\-Depends:\fP dpkg (>= 1.17.14) | |
261 | .P | |
262 | In molti casi però l'operazione effettuata dal programma non è critica per | |
263 | il pacchetto e invece di usare una pre\-dipendenza si può chiamare il | |
264 | programma solo se si sa che il comando richiesto è supportato dalla versione | |
265 | di \fBdpkg\fP attualmente installata: | |
266 | .P | |
267 | if dpkg\-maintscript\-helper supports \fIcomando\fP; then | |
268 | dpkg\-maintscript\-helper \fIcomando\fP ... | |
269 | fi | |
270 | .P | |
271 | Il comando \fBsupports\fP restituisce 0 in caso di successo e 1 altrimenti. Il | |
272 | comando \fBsupports\fP controlla se le variabili d'ambiente impostate da dpkg e | |
273 | richiesta dallo script sono presenti e considera un fallimento se l'ambiente | |
274 | non è sufficiente. | |
275 | .SH "VEDERE ANCHE" | |
276 | .ad l | |
277 | \fBdh_installdeb\fP(1). |