/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>
|