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