This file is indexed.

/usr/share/doc/maint-guide-it/html/checkit.it.html is in maint-guide-it 1.2.32.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Capitolo 7. Controllare il pacchetto per errori</title>
    <link rel="stylesheet" type="text/css" href="maint-guide.css"/>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <link rel="home" href="index.it.html" title="Guida per il nuovo Maintainer"/>
    <link rel="up" href="index.it.html" title="Guida per il nuovo Maintainer"/>
    <link rel="prev" href="build.it.html" title="Capitolo 6. Costruzione del pacchetto"/>
    <link rel="next" href="update.it.html" title="Capitolo 8. Aggiornamento del pacchetto"/>
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Capitolo 7. Controllare il pacchetto per errori</th>
        </tr>
        <tr>
          <td align="left"><a accesskey="p" href="build.it.html"><img src="images/prev.gif" alt="Indietro"/></a> </td>
          <th width="60%" align="center"> </th>
          <td align="right"> <a accesskey="n" href="update.it.html"><img src="images/next.gif" alt="Avanti"/></a></td>
        </tr>
      </table>
      <hr/>
    </div>
    <div class="chapter">
      <div class="titlepage">
        <div>
          <div>
            <h1 class="title"><a id="checkit"/>Capitolo 7. Controllare il pacchetto per errori</h1>
          </div>
        </div>
      </div>
      <div class="toc">
        <p>
          <strong>Indice</strong>
        </p>
        <dl class="toc">
          <dt>
            <span class="section">
              <a href="checkit.it.html#inadvent">7.1. Modifiche sospette</a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="checkit.it.html#pinstall">7.2. Verifica dell'installazione di un pacchetto</a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="checkit.it.html#pmaintscripts">7.3. Verifica degli script del manutentore di un pacchetto</a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="checkit.it.html#lintians">7.4. Utilizzare <code class="systemitem">lintian</code></a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="checkit.it.html#debc">7.5. Il comando <span class="command"><strong>debc</strong></span></a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="checkit.it.html#debdiff">7.6. Il comando <span class="command"><strong>debdiff</strong></span></a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="checkit.it.html#interdiff">7.7. Il comando <span class="command"><strong>interdiff</strong></span></a>
            </span>
          </dt>
          <dt>
            <span class="section">
              <a href="checkit.it.html#mc">7.8. Il comando <span class="command"><strong>mc</strong></span></a>
            </span>
          </dt>
        </dl>
      </div>
      <p>
Ci sono alcune tecniche da sapere per controllare se un pacchetto ha degli
errori prima di caricarlo negli archivi pubblici.
</p>
      <p>
Effettuare dei test su altre macchine oltre a quella con cui si è sviluppato
è una buona idea.  Si deve inoltre fare attenzione agli avvisi ed agli
errori per tutti i test che verranno qui descritti.
</p>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="inadvent"/>7.1. Modifiche sospette</h2>
            </div>
          </div>
        </div>
        <p>
Se si trova un nuovo file di patch generato automaticamente, come
<code class="filename">debian-changes-*</code> nella directory
<code class="filename">debian/patches</code> dopo aver costruito un pacchetto Debian
non-nativo nel formato <code class="literal">3.0 (quilt)</code>, è probabile che è
stato cambiato qualche file per caso o che gli script di build hanno
modificato il sorgente originale. Se è si tratta di un errore del genere, lo
si risolva. Se è causato dallo script di build, si cerchi la causa
principale del problema con <span class="command"><strong>dh-autoreconf</strong></span> come mostrato
in <a class="xref" href="dreq.it.html#customrules" title="4.4.3. Personalizzazione del file rules">Sezione 4.4.3, «Personalizzazione del file <code class="filename">rules</code>»</a> o si cerchi di aggirare il problema con
<code class="filename">source/options</code> come mostrato in <a class="xref" href="dother.it.html#sourceopt" title="5.25. source/options">Sezione 5.25, «<code class="filename">source/options</code>»</a>.
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="pinstall"/>7.2. Verifica dell'installazione di un pacchetto</h2>
            </div>
          </div>
        </div>
        <p>
Bisogna verificare che il pacchetto si installi senza problemi.  Il comando
<span class="citerefentry"><span class="refentrytitle">debi</span>(1)</span> aiuta a testare l'installazione di tutti i pacchetti binari
generati.
</p>
        <pre class="screen">
$ sudo debi gentoo_0.9.12-1_i386.changes
</pre>
        <p>
Per prevenire eventuali problemi di installazione su sistemi diversi,
bisogna assicurarsi che non ci siano file in conflitto con altri pacchetti
esistenti utilizzando il file
<code class="filename">Contents-<em class="replaceable"><code>i386</code></em></code> scaricato
dall'archivio Debian.  Il comando <span class="command"><strong>apt-file</strong></span> può tornare
utile a questo scopo.  Se ci sono file che si sovrappongono, si prega di
prendere delle misure per evitare l'insorgere del problema, rinominando il
file, spostando il file in un pacchetto separato e configurarlo come
dipendenza sui vari pacchetti che lo richiedono, utilizzando meccanismi
alternativi (si veda <span class="citerefentry"><span class="refentrytitle">update-alternatives</span>(1)</span>) che permettendo di coordinarsi con i manutentori degli
altri pacchetti interessati o settano la voce <code class="literal">Conflicts</code>
nel file <code class="filename">debian/control</code>.
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="pmaintscripts"/>7.3. Verifica degli script del manutentore di un pacchetto</h2>
            </div>
          </div>
        </div>
        <p>
Tutti gli script del manutentore (ad esempio i file,
<code class="filename">preinst</code>, <code class="filename">prerm</code>,
<code class="filename">postinst</code>, e <code class="filename">postrm</code>) sono difficili
da scrivere correttamente a meno che non siano stati generati
automaticamente dai programmi di <code class="systemitem">debhelper</code>.  Si consiglia pertanto di non
utilizzarli se non si ha sufficiente esperienza come manutentore (si veda
<a class="xref" href="dother.it.html#maintscripts" title="5.19. {pre,post}{inst,rm}">Sezione 5.19, «<code class="filename">{pre,post}{inst,rm}</code>»</a>).
</p>
        <p>
Se il pacchetto utilizza questi particolari script del manutentore, ci si
assicuri di effettuare delle prove non solo per l'operazione di install, ma
anche per il remove, purge, e l'upgrade.  Molti bug degli script del
manutentore vengono fuori quando i pacchetti sono rimossi o viene applicato
il purge.  Si utilizzi il comando <span class="command"><strong>dpkg</strong></span> nel seguente modo
per testarli.
</p>
        <pre class="screen">
$ sudo dpkg -r gentoo
$ sudo dpkg -P gentoo
$ sudo dpkg -i gentoo_<em class="replaceable"><code>version</code></em>-<em class="replaceable"><code>revision</code></em>_<em class="replaceable"><code>i386</code></em>.deb
</pre>
        <p>
Questa operazione si dovrebbe effettuare con delle sequenze di questo tipo.
</p>
        <div class="itemizedlist">
          <ul class="itemizedlist">
            <li class="listitem">
              <p>
installazione della versione precedente (se necessaria).
</p>
            </li>
            <li class="listitem">
              <p>
aggiornamento dalla versione precedente.
</p>
            </li>
            <li class="listitem">
              <p>
ritorno alla versione precedente (opzionale).
</p>
            </li>
            <li class="listitem">
              <p>
applicazione del purge.
</p>
            </li>
            <li class="listitem">
              <p>
installazione del nuovo pacchetto.
</p>
            </li>
            <li class="listitem">
              <p>
rimozione del pacchetto.
</p>
            </li>
            <li class="listitem">
              <p>
reinstallazione del pacchetto.
</p>
            </li>
            <li class="listitem">
              <p>
applicazione del purge.
</p>
            </li>
          </ul>
        </div>
        <p>
Se si sta creando il primo pacchetto, andrebbero creati dei pacchetti
fittizi con diversi numeri di versione per testare il pacchetto originale in
anticipo e prevenire problemi futuri.
</p>
        <p>
Si tenga in mente che se il pacchetto è stato già rilasciato in Debian, le
persone spesso effettueranno un aggiorneranno a quest'ultimo a partire
dall'ultima versione disponibile su Debian.  Si ricordi di testare gli
aggiornamenti anche a partire da questa versione.
</p>
        <p>
Anche se il ritorno ad una versione precedente non è ufficialmente
supportato, sarebbe buona abitudine supportarlo.
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="lintians"/>7.4. Utilizzare <code class="systemitem">lintian</code></h2>
            </div>
          </div>
        </div>
        <p>
Si esegua <span class="citerefentry"><span class="refentrytitle">lintian</span>(1)</span> sul file
<code class="filename">.changes</code>.  Il comando <span class="command"><strong>lintian</strong></span> esegue
molti script di test alla ricerca dei più comuni errori di
pacchettizzazione.  <a href="#ftn.idp29871316" class="footnote" id="idp29871316"><sup class="footnote">[77]</sup></a>
</p>
        <pre class="screen">
$ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes
</pre>
        <p>
Ovviamente va rimpiazzato il nome con quello del file
<code class="filename">.changes</code> generato per il pacchetto.  I risultati del
comando <span class="command"><strong>lintian</strong></span> vengono qui elencati di seguito.
</p>
        <div class="itemizedlist">
          <ul class="itemizedlist">
            <li class="listitem">
              <p>
<code class="literal">E:</code> errore; una violazione certa di una policy o un errore
di pacchettizzazione.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">W:</code> attenzione; una possibile violazione di policy o un
errore della pacchettizzazione.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">I:</code> informazione; un'informazione su alcuni aspetti della
pacchettizzazione.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">N:</code> nota; un messaggio dettagliato per aiutare
nell'analisi degli errori.
</p>
            </li>
            <li class="listitem">
              <p>
<code class="literal">O:</code> per sovrascrivere: il messaggio verrà sovrascritto dal
file <code class="filename">lintian-overrides</code>, ma potrà essere visualizzato
con l'opzione <code class="literal">--show-overrides</code>.
</p>
            </li>
          </ul>
        </div>
        <p>
Quando vengono generati degli avvertimenti, si imposti il pacchetto in modo
tale da evitarli o si verifichi che tali avvertimenti non siano indicativi
di un errore.  In quest'ultimo caso, si impostino i file
<code class="filename">lintian-overrides</code> come descritto in <a class="xref" href="dother.it.html#lintian" title="5.14. {pacchetto.,source/}lintian-overrides">Sezione 5.14, «<code class="filename">{<em class="replaceable"><code>pacchetto</code></em>.,source/}lintian-overrides</code>»</a>.
</p>
        <p>
Si noti che si può costruire il pacchetto con
<span class="command"><strong>dpkg-buildpackage</strong></span> ed eseguire <span class="command"><strong>lintian</strong></span>
su di esso in una sola volta con <span class="citerefentry"><span class="refentrytitle">debuild</span>(1)</span> o con <span class="citerefentry"><span class="refentrytitle">pdebuild</span>(1)</span>.
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="debc"/>7.5. Il comando <span class="command"><strong>debc</strong></span></h2>
            </div>
          </div>
        </div>
        <p>
Si possono elencare i file nel pacchetto binario Debian con il comando
<span class="citerefentry"><span class="refentrytitle">debc</span>(1)</span>.
</p>
        <pre class="screen">
$ debc <em class="replaceable"><code>package</code></em>.changes
</pre>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="debdiff"/>7.6. Il comando <span class="command"><strong>debdiff</strong></span></h2>
            </div>
          </div>
        </div>
        <p>
Si può confrontare il contenuto dei file in due pacchetti sorgente Debian
con il comando <span class="citerefentry"><span class="refentrytitle">debdiff</span>(1)</span>.
</p>
        <pre class="screen">
$ debdiff <em class="replaceable"><code>old-package</code></em>.dsc <em class="replaceable"><code>new-package</code></em>.dsc
</pre>
        <p>
Si possono anche confrontare le liste di file in due set di pacchetti binari
Debian con il comando <span class="citerefentry"><span class="refentrytitle">debdiff</span>(1)</span>.
</p>
        <pre class="screen">
$ debdiff <em class="replaceable"><code>old-package</code></em>.changes <em class="replaceable"><code>new-package</code></em>.changes
</pre>
        <p>
Questi comandi sono utili per vedere cosa sia cambiato nei pacchetti
sorgente, se un file sia stato spostato inavvertitamente o rimosso dai
pacchetti, e se altri cambiamenti non intenzionali siano stati fatti durante
l'aggiornamento dei pacchetti binari.
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="interdiff"/>7.7. Il comando <span class="command"><strong>interdiff</strong></span></h2>
            </div>
          </div>
        </div>
        <p>
Si possono confrontare due file <code class="filename">diff.gz</code> con il comando
<span class="citerefentry"><span class="refentrytitle">interdiff</span>(1)</span>.  Questo è utile per verificare che
il manutentore non abbia inavvertitamente fatto dei cambiamenti ai sorgenti
durante il processo di aggiornamento dei pacchetti nel vecchio formato
sorgente <code class="literal">1.0</code>.
</p>
        <pre class="screen">
$ interdiff -z <em class="replaceable"><code>old-package</code></em>.diff.gz <em class="replaceable"><code>new-package</code></em>.diff.gz
</pre>
        <p>
Il nuovo formato sorgente <code class="literal">3.0</code> salva i cambiamenti in file
di patch multipli come descritto in <a class="xref" href="dother.it.html#patches" title="5.26. patches/*">Sezione 5.26, «<code class="filename">patches/*</code>»</a>.  È possibile
tracciare i cambiamenti di ogni file <code class="filename">debian/patches/*</code>
usando anche <span class="command"><strong>interdiff</strong></span>.
</p>
      </div>
      <div class="section">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title"><a id="mc"/>7.8. Il comando <span class="command"><strong>mc</strong></span></h2>
            </div>
          </div>
        </div>
        <p>
Molte delle operazione di ispezione dei file possono essere rese più
semplici utilizzando un gestore dei file come <span class="citerefentry"><span class="refentrytitle">mc</span>(1)</span>,
che permette di navigare non solo il contenuto dei pacchetti in formato
<code class="filename">*.deb</code> ma anche degli <code class="filename">*.udeb</code>,
<code class="filename">*.debian.tar.gz</code>, <code class="filename">*.diff.gz</code>, e dei
file <code class="filename">*.orig.tar.gz</code>.
</p>
        <p>
Si faccia attenzione ad ulteriori file non necessari o vuoti, sia nel
pacchetto binario che in quello sorgente.  Spesso non vengono ripuliti
correttamente; si aggiusti il file <code class="filename">rules</code> per riparare a
questo problema.
</p>
      </div>
      <div class="footnotes">
        <br/>
        <hr/>
        <div id="ftn.idp29871316" class="footnote">
          <p><a href="#idp29871316" class="para"><sup class="para">[77] </sup></a> Non c'è bisogno di fornire l'opzione <span class="command"><strong>lintian</strong></span> <code class="literal">-i
-I --show-overrides</code> se si è personalizzato il file
<code class="filename">/etc/devscripts.conf</code> o il file
<code class="filename">~/.devscripts</code> come descritto in <a class="xref" href="build.it.html#debuild" title="6.3. Il comando debuild">Sezione 6.3, «Il comando <span class="command"><strong>debuild</strong></span>»</a>.
</p>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <hr/>
      <table width="100%" summary="Navigation footer">
        <tr>
          <td align="left"><a accesskey="p" href="build.it.html"><img src="images/prev.gif" alt="Indietro"/></a> </td>
          <td align="center"> </td>
          <td align="right"> <a accesskey="n" href="update.it.html"><img src="images/next.gif" alt="Avanti"/></a></td>
        </tr>
        <tr>
          <td align="left" valign="top">Capitolo 6. Costruzione del pacchetto </td>
          <td align="center">
            <a accesskey="h" href="index.it.html">
              <img src="images/home.gif" alt="Partenza"/>
            </a>
          </td>
          <td align="right" valign="top"> Capitolo 8. Aggiornamento del pacchetto</td>
        </tr>
      </table>
    </div>
  </body>
</html>