/[ddp]/manuals/trunk/apt-howto/apt-howto.it.sgml
ViewVC logotype

Contents of /manuals/trunk/apt-howto/apt-howto.it.sgml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3228 - (show annotations) (download) (as text)
Fri May 27 19:56:12 2005 UTC (8 years ago) by kov
File MIME type: text/x-sgml
File size: 75519 byte(s)
	* (it):
	- italian translation updated to 1.8.10.4 (by mondo-guest@alioth)
1 <!doctype debiandoc system><debiandoc>
2 <book>
3 <titlepag>
4 <title>
5 APT HOWTO
6 </title>
7 <author>
8 <name>Gustavo Noronha Silva</name><email>kov@debian.org</email>
9 </author>
10 <translator>
11 <name>Traduzione di Luca Monducci</name>
12 </translator>
13 <version>
14 1.8.10.4 - Marzo 2005
15 </version>
16 <abstract>
17 Questo documento intende fornire una buona base sul funzionamento del
18 sistema per la gestione dei pacchetti fornito da Debian, APT. Il suo
19 scopo è facilitare la vita ai nuovi utenti Debian e aiutarli ad
20 approfondire le loro conoscenze su come si amministrano i
21 pacchetti. Questo HOWTO fa parte del progetto Debian e ha lo scopo di
22 migliorare il supporto disponibile agli utenti di questa distribuzione.
23 </abstract>
24 <copyright>
25 <copyrightsummary>
26 Copyright &copy; 2001, 2002, 2003, 2004 Gustavo Noronha Silva
27 </copyrightsummary>
28 <copyrightsummary>
29 Traduzione italiana &copy; 2002 &ndash; 2005 Luca Monducci
30 </copyrightsummary>
31 <p>
32 This manual is free software; you may redistribute it and/or modify it
33 under the terms of the GNU General Public License as published by the
34 Free Software Foundation; either version 2, or (at your option) any
35 later version.
36 </p>
37 <p>
38 This is distributed in the hope that it will be useful, but without
39 any warranty; without even the implied warranty of merchantability or
40 fitness for a particular purpose. See the GNU General Public License
41 for more details.
42 </p>
43 <p>
44 A copy of the GNU General Public License is available as
45 /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or
46 on the World Wide Web at the GNU General Public Licence. You can also
47 obtain it by writing to the Free Software Foundation, Inc., 59 Temple
48 Place - Suite 330, Boston, MA 02111-1307, USA.
49 </p>
50 <p>
51 <em>L'unica licenza valida è quella originale in lingua inglese. Di
52 seguito ne trovate una traduzione abbastanza fedele che però non ha
53 alcun valore legale.</em>
54 </p>
55 <p>
56 Questo documento è software libero; è lecito redistribuirlo o
57 modificarlo secondo i termini della GNU General Public License come
58 è pubblicata dalla Free Software Foundation; o la versione 2 della
59 licenza o (a propria scelta) una versione successiva.
60 </p>
61 <!--La distribuzione e l'utilizzo di questo documento sono vincolati dai
62 termini indicati nella versione 2 (o da qualunque versione successiva) della
63 GNU General Public License pubblicata dalla Free Software Foundation.-->
64 <p>
65 Questo documento è distribuito con l'intento di essere utile, ma senza
66 alcuna garanzia; senza neppure la garanzia implicita di negoziabilità o
67 di applicabilità per un particolare scopo. Vedere la GNU General Public
68 License per avere maggiori dettagli.
69 </p>
70 <p>
71 Una copia della GNU General Public License à disponibile come
72 /usr/share/common-licenses/GPL nella distribuzione Debian GNU/Linux
73 oppure nel World Wide Web alla GNU General Public Licence. La si
74 può ottenere anche scrivendo alla Free Software Foundation, Inc.,
75 59 Temple Place - Suite 330, Boston, MA 0211-1307, USA.
76 </p>
77 </copyright>
78 </titlepag>
79 <toc detail="sect">
80
81 <chapt>
82 <heading>
83 Introduzione
84 </heading>
85 <p>
86 In principio esistevano i .tar.gz. Gli utenti dovevano compilare ogni
87 programma che volevano usare sui loro sistemi GNU/Linux. Quando fu
88 creata Debian, fu ritenuto necessario che il sistema incorporasse un
89 metodo di gestione dei pacchetti installati sulla macchina. A questo
90 sistema fu dato il nome <prgn>dpkg</prgn>. Fu così che nacque il famoso
91 "pacchetto" nel mondo GNU/Linux, poco prima che Red Hat decidesse di
92 creare il proprio "rpm".
93 </p>
94 <p>
95 Rapidamente un nuovo dilemma si fece strada nelle menti degli
96 sviluppatori di GNU/Linux. A loro serviva un modo rapido, pratico ed
97 efficiente per installare i programmi, che gestisse automaticamente le
98 dipendenze e che avesse cura di mantenere i file di configurazione
99 esistenti mentre si effettuavano i vari aggiornamenti. Ancora una volta
100 Debian ha aperto la strada dando vita a APT (Advanced Packaging Tool),
101 che poi è stato adattato da Conectiva per usarlo insieme a rpm e in
102 seguito è stato adottato anche da altre distribuzioni.
103 </p>
104 <p>
105 Questo HOWTO non tratta di apt-rpm, così è chiamato l'adattamento fatto
106 da Conectiva di APT, ma eventuali patch a questo documento saranno ben
107 accolte.
108 </p>
109 <p>
110 Questo manuale è basato sulla prossima release Debian, <tt>Sarge</tt>.
111 </p>
112 </chapt>
113 <chapt id="basico">
114 <heading>
115 Configurazione di base
116 </heading>
117 <sect id="sources.list">
118 <heading>
119 Il file /etc/apt/sources.list
120 </heading>
121 <p>
122 Nello svolgere le sue operazioni, APT usa un file che contiene la lista
123 delle "sorgenti" dalle quali può attingere i pacchetti. Questo file è
124 <tt>/etc/apt/sources.list</tt>.
125 </p>
126 <p>
127 Il contenuto di questo file ha normalmente il seguente formato:
128 </p>
129 <p>
130 <example>deb http://host/debian distribuzione sezione1 sezione2 sezione3
131 deb-src http://host/debian distribuzione sezione1 sezione2 sezione3</example>
132 </p>
133 <p>
134 &Egrave; da osservare che l'esempio sopra è fittizio e non dovrebbe
135 essere usato. La prima parola di ogni riga, <tt>deb</tt> o
136 <tt>deb-src</tt>, indica il tipo di archivio: se contiene pacchetti
137 binari (<tt>deb</tt>), che sono i pacchetti già compilati che
138 normalmente usiamo, o se l'archivio contiene i pacchetti sorgente
139 (<tt>deb-src</tt>), che sono il codice originale del programma con
140 l'aggiunta del file di controllo (<tt>.dsc</tt>) e del file
141 <tt>diff.gz</tt> che contiene i cambiamenti necessari per
142 "debianizzare" il programma.
143 </p>
144 <p>
145 Generalmente questo è il contenuto predefinito di sources.list:
146 </p>
147 <p>
148 <example># See sources.list(5) for more information, especially
149 # Remember that you can only use http, ftp or file URIs
150 # CDROMs are managed through the apt-cdrom tool.
151 deb http://http.us.debian.org/debian stable main contrib non-free
152 deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
153 deb http://security.debian.org stable/updates main contrib non-free
154
155 # Uncomment if you want the apt-get source function to work
156 #deb-src http://http.us.debian.org/debian stable main contrib non-free
157 #deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free</example>
158 </p>
159 <p>
160 Queste righe sono quelle necessarie per un'installazione base. La prima
161 delle righe che iniziano con <tt>deb</tt> punta all'archivio ufficiale,
162 la seconda all'archivio non-US e la terza all'archivio degli
163 aggiornamenti di sicurezza Debian.
164 </p>
165 <p>
166 Le ultime due righe sono commentate (con un "#" all'inizio), così
167 verranno ignorate da apt-get. Queste iniziano con <tt>deb-src</tt> e
168 puntano agli archivi che contengono i pacchetti sorgente. Se si
169 scaricano spesso i sorgenti di un programma per fare dei test o per
170 ricompilarlo, è necessario togliere il "#" all'inizio delle righe.
171 </p>
172 <p>
173 In <tt>/etc/apt/sources.list</tt> si possono specificare diversi tipi
174 di righe. APT sa come trattare i seguenti tipi di archivio
175 <tt>http</tt>, <tt>ftp</tt>, <tt>file</tt> (file locali, per esempio
176 una directory su cui è montato un CD-ROM) e <tt>ssh</tt>.
177 </p>
178 <p>
179 Non scordarsi di lanciare <tt>apt-get update</tt> ogni volta che si
180 modifica il file <tt>/etc/apt/source.list</tt>. Questa operazione forza
181 APT ad aggiornare la lista dei pacchetti che può reperire dalle
182 sorgenti specificate nel file stesso.
183 </p>
184 </sect>
185 <sect id="dpkg-scanpackages">
186 <heading>
187 Come usare APT localmente
188 </heading>
189 <p>
190 Può capitare di avere dei pacchetti .deb da installare e lo si vuole
191 fare usando APT così che le dipendenze siano risolte automaticamente.
192 </p>
193 <p>
194 Per farlo bisogna creare una directory e metterci dentro i .deb da
195 trattare. Per esempio:
196 </p>
197 <p>
198 <example># mkdir /root/debs</example>
199 </p>
200 <p>
201 &Egrave; possibile modificare le opzioni nel file di controllo dei
202 pacchetti contenuti nell'archivio locale usando il file di
203 <tt>override</tt>. Dentro questo file si possono definire alcune
204 opzioni che hanno precedenza su quelle predefinite nei pacchetti. Il
205 suo formato dovrebbe assomigliare a quello che segue:
206 </p>
207 <p>
208 <example>pacchetto priorità sezione</example>
209 </p>
210 <p>
211 dove "pacchetto" è il nome del pacchetto, "priorità" può essere low,
212 medium o high e "sezione" è la sezione alla quale appartiene. Il nome
213 di questo file non è importante, successivamente dovrà essere passato
214 come argomento a <prgn>dpkg-scanpackages</prgn>. Se non si vuole
215 scrivere o usare un file di <tt>override</tt>, è sufficiente usare
216 <file>/dev/null</file> quando si richiama
217 <prgn>dpkg-scanpackages</prgn>.
218 </p>
219 <p>
220 Rimanendo nella directory <tt>/root</tt> eseguire:
221 </p>
222 <p>
223 <example># dpkg-scanpackages debs <var>file</var> | gzip &gt; debs/Packages.gz</example>
224 </p>
225 <p>
226 Nella riga sopra, dove <var>file</var> è il file di <tt>override</tt>,
227 il comando genera il file <file>Packages.gz</file>, questo contiene
228 delle informazioni sui pacchetti che saranno usate da APT in
229 seguito. Infine, per usare i nostri pacchetti, aggiungere questa riga a
230 <tt>/etc/apt/source.list</tt>:
231 </p>
232 <p>
233 <example>deb file:/root debs/</example>
234 </p>
235 <p>
236 Adesso si può usare APT normalmente. Anche per i pacchetti sorgente si
237 può generare un archivio locale. Per farlo si segue la stessa
238 procedura, ma bisogna ricordarsi di avere i file <tt>.orig.tar.gz</tt>,
239 <tt>.dsc</tt> e <tt>.diff.gz</tt> nella directory di lavoro e bisogna
240 usare <tt>Sources.gz</tt> al posto di <tt>Packages.gz</tt>. Anche il
241 programma da usare è diverso: per questa operazione va utilizzato
242 <tt>dpkg-scansources</tt>. La riga di comando sarà simile a questa:
243 </p>
244 <p>
245 <example># dpkg-scansources debs | gzip &gt; debs/Sources.gz</example>
246 </p>
247 <p>
248 Notare che <tt>dpkg-scansources</tt> non necessita del file di
249 <tt>override</tt>. Infine aggiungere a <tt>/etc/apt/source.list</tt>:
250 </p>
251 <p>
252 <example>deb-src file:/root debs/</example>
253 </p>
254 </sect>
255 <sect id="netselect">
256 <heading>
257 Scegliere il miglior mirror da inserire in sources.list: netselect,
258 netselect-apt
259 </heading>
260 <p>
261 Un dubbio molto frequente, in particolare per nuovi utenti, è: "quale
262 mirror inserire in <tt>sources.list</tt>?". Ci sono molti modi per
263 deciderlo. Gli utenti esperti probabilmente hanno uno script che misura
264 il tempo di ping verso svariati mirror. Ma c'è un programma che fa
265 questo per noi: <package>netselect</package>.
266 </p>
267 <p>
268 Per installare netselect, generalmente si esegue:
269 </p>
270 <p>
271 <example># apt-get install netselect</example>
272 </p>
273 <p>
274 Eseguendo netselect senza alcun argomento viene mostrato un breve
275 elenco delle opzioni. Eseguendolo con una lista di host separati da uno
276 spazio come argomento visualizzerà un punteggio e il nome di uno degli
277 host. Il punteggio prende in considerazione il tempo di ping e gli hop
278 (numero di nodi della rete che si deve attraversare per raggiungere la
279 destinazione) ed è inversamente proporzionale alla velocità di download
280 stimata (il più basso è il migliore). Il nome mostrato è quello
281 dell'host che ha il punteggio più basso (la lista completa dei punteggi
282 si ottiene usando l'opzione -vv). Osservare questo esempio:
283 </p>
284 <p>
285 <example># netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
286 365 ftp.debian.org.br
287 #</example>
288 </p>
289 <p>
290 Significa che, fra i mirror indicati nella riga di comando,
291 <tt>ftp.debian.org.br</tt> era il migliore, con un punteggio di
292 365. (Attenzione!! Questo risultato è stato ottenuto su un certo
293 computer e per un certo tipo d'accesso alla rete, quindi questo valore
294 non è assolutamente di validità generale).
295 </p>
296 <p>
297 Ora è necessario aggiungere il mirror più veloce nel file
298 <tt>/etc/apt/sources.list</tt> (vedere <ref id="sources.list">) e
299 seguire i suggerimenti in <ref id="apt-get">.
300 </p>
301 <p>
302 <strong>Nota:</strong> la lista completa dei mirror Debian si può
303 trovare a questo indirizzo <url
304 id="http://www.debian.org/mirror/mirrors_full"
305 name="http://www.debian.org/mirror/mirrors_full">.
306 </p>
307 <p>
308 Dalla versione 0.3.ds1 il pacchetto sorgente netselect include il
309 pacchetto binario <strong>netselect-apt</strong> che esegue
310 automaticamente il processo descritto sopra. &Egrave; sufficiente
311 passare come parametro il ramo della distribuzione (stable è il valore
312 predefinito) e verrà generato un nuovo <tt>sources.list</tt> con i
313 mirror migliori per main e per non-US nella directory attuale. Il
314 prossimo esempio genera un <tt>sources.list</tt> per la distribuzione
315 stable:
316 </p>
317 <p>
318 <example># ls sources.list
319 ls: sources.list: File or directory not found
320 # netselect-apt stable
321 (...)
322 # ls -l sources.list
323 sources.list
324 #</example>
325 </p>
326 <p>
327 <strong>Da ricordare:</strong> il file <tt>sources.list</tt> è creato
328 nella directory attuale e deve essere spostato nella directory
329 <tt>/etc/apt</tt>.
330 </p>
331 <p>
332 Infine, seguite i suggerimenti in <ref id="apt-get">.
333 </p>
334 </sect>
335 <sect id="cdrom">
336 <heading>
337 Aggiungere un CD-ROM al file sources.list
338 </heading>
339 <p>
340 Se si vuole usare un CD-ROM per installare i pacchetti o per aggiornare
341 il sistema automaticamente con APT, va inserito nel file
342 <tt>sources.list</tt>. Per farlo si può usare il programma
343 <prgn>apt-cdrom</prgn> in questo modo:
344 </p>
345 <p>
346 <example># apt-cdrom add</example>
347 </p>
348 <p>
349 con un CD-ROM di Debian nel lettore. Questa istruzione eseguirà il
350 mount del CD-ROM e, se il CD è valido, verranno cercate le informazioni
351 sui pacchetti che sono sul disco. Se la configurazione del CD-ROM è un
352 po' inusuale, si possono usare le seguenti opzioni:
353 </p>
354 <p>
355 <example>-h - Questo aiuto
356 -d directory - Mount point del CDROM
357 -r - Rinomina un CDROM già riconosciuto
358 -m - Nessun montaggio
359 -f - Modalità veloce, non controlla i file dei pacchetti
360 -a - Scansione in modalità accurata</example>
361 </p>
362 <p>
363 Per esempio:
364 </p>
365 <p>
366 <example># apt-cdrom -d /home/kov/mycdrom add</example>
367 </p>
368 <p>
369 Si può controllare l'identità di un CD-ROM, senza inserirlo nella
370 lista:
371 </p>
372 <p>
373 <example># apt-cdrom ident</example>
374 </p>
375 <p>
376 Notare che questo programma funziona solo se il CD-ROM è correttamente
377 configurato in <tt>/etc/fstab</tt>.
378 </p>
379 </sect>
380 </chapt>
381 <chapt id="apt-get">
382 <heading>
383 Gestione dei pacchetti
384 </heading>
385 <sect id="update">
386 <heading>
387 Aggiornare la lista dei pacchetti disponibili
388 </heading>
389 <p>
390 Il sistema di gestione dei pacchetti usa un suo database per tenere
391 traccia di quali pacchetti sono installati, quali non lo sono e quali
392 sono disponibili per l'installazione. Il programma <prgn>apt-get</prgn>
393 usa questo database per capire come installare i pacchetti richiesti
394 dall'utente e per scoprire quali ulteriori pacchetti sono necessari per
395 farli funzionare correttamente.
396 </p>
397 <p>
398 Per aggiornare questo elenco, va usato il comando <prgn>apt-get
399 update</prgn>. Questo comando controlla le liste dei pacchetti presenti
400 negli archivi elencati in <tt>/etc/apt/sources.list</tt>; vedere <ref
401 id="sources.list"> ulteriori informazioni su questo file.
402 </p>
403 <p>
404 &Egrave; una buona idea eseguire questo comando regolarmente per avere
405 un sistema informato su possibili aggiornamenti dei pacchetti, in
406 particolare sugli aggiornamenti di sicurezza.
407 </p>
408 </sect>
409 <sect id="install">
410 <heading>
411 Installazione dei pacchetti
412 </heading>
413 <p>
414 Con il file sources.list pronto e l'elenco dei pacchetti disponibili
415 aggiornato, tutto quello che è necessario fare per installare un
416 pacchetto è eseguire <tt>apt-get</tt>. Per esempio, si può lanciare:
417 </p>
418 <p>
419 <example># apt-get install xchat</example>
420 </p>
421 <p>
422 APT cercherà nel suo database la versione più recente del pacchetto e
423 lo recupererà, come specificato in <tt>sources.list</tt>, dal
424 corrispondente archivio. Nel caso che il pacchetto dipenda da altri,
425 come nel caso dell'esempio, APT controllerà le dipendenze e installerà
426 i pacchetti necessari, come nell'esempio successivo:
427 </p>
428 <p>
429 <example># apt-get install nautilus
430 Reading Package Lists... Done
431 Building Dependency Tree... Done
432 The following extra packages will be installed:
433 bonobo libmedusa0 libnautilus0
434 The following NEW packages will be installed:
435 bonobo libmedusa0 libnautilus0 nautilus
436 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
437 Need to get 8329kB of archives. After unpacking 17.2MB will be used.
438 Do you want to continue? [Y/n]</example>
439 </p>
440 <p>
441 Il pacchetto <package>nautilus</package> dipende dalle librerie citate
442 sopra, quindi per prima cosa APT preleverà queste dall'archivio. Se si
443 era specificato sulla riga di comando di <tt>apt-get</tt> il nome di
444 queste librerie, APT non avrebbe chiesto conferma per continuare,
445 infatti avrebbe installato esattamente ciò che viene chiesto
446 dall'utente.
447 </p>
448 <p>
449 Questo significa che APT chiede la conferma solo quando è necessario
450 installare pacchetti che non sono specificati sulla riga di comando.
451 </p>
452 <p>
453 Le seguenti opzioni di apt-get possono essere utili:
454 </p>
455 <p>
456 <example>-h Questo aiuto
457 -d Solamente download - NON installa o decomprime gli archivi
458 -f Tenta di continuare se il controllo di integrità fallisce
459 -s Nessuna azione. Simula i passi
460 -y Assume sì a tutte le domande e non chiede conferma
461 -u Mostra anche una lista dei pacchetti da aggiornare</example>
462 </p>
463 <p>
464 Sulla riga di comando si possono specificare più pacchetti. I file
465 scaricati dalla rete sono riposti nella directory
466 <tt>/var/cache/apt/archives</tt> per la successiva installazione.
467 </p>
468 <p>
469 Sulla medesima riga di comando si possono specificare anche i pacchetti
470 da rimuovere, è sufficiente mettere "-" immediatamente dopo il nome del
471 pacchetto che dev'essere rimosso, come in quest'esempio:
472 </p>
473 <p>
474 <example># apt-get install nautilus gnome-panel-
475 Reading Package Lists... Done
476 Building Dependency Tree... Done
477 The following extra packages will be installed:
478 bonobo libmedusa0 libnautilus0
479 The following packages will be REMOVED:
480 gnome-applets gnome-panel gnome-panel-data gnome-session
481 The following NEW packages will be installed:
482 bonobo libmedusa0 libnautilus0 nautilus
483 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
484 Need to get 8329kB of archives. After unpacking 2594kB will be used.
485 Do you want to continue? [Y/n]</example>
486 </p>
487 <p>
488 Fare riferimento a <ref id="remove"> per altri dettagli sulla rimozione
489 dei pacchetti.
490 </p>
491 <p>
492 Se in qualche modo si danneggia un pacchetto già installato, o
493 semplicemente si vuole che i file di un pacchetto siano rimpiazzati da
494 quelli della versione più recente che è disponibile, si può usare
495 l'opzione <tt>--reinstall</tt>, in questo modo:
496 </p>
497 <p>
498 <example># apt-get --reinstall install gdm
499 Reading Package Lists... Done
500 Building Dependency Tree... Done
501 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
502 Need to get 0B/182kB of archives. After unpacking 0B will be used.
503 Do you want to continue? [Y/n]</example>
504 </p>
505 </sect>
506 <sect id="remove">
507 <heading>
508 Rimozione dei pacchetti
509 </heading>
510 <p>
511 Se non si vuole più usare un pacchetto, lo si può rimuovere dal sistema
512 usando APT. Per farlo eseguire: <tt>apt-get remove package</tt>. Per
513 esempio:
514 </p>
515 <p>
516 <example># apt-get remove gnome-panel
517 Reading Package Lists... Done
518 Building Dependency Tree... Done
519 The following packages will be REMOVED:
520 gnome-applets gnome-panel gnome-panel-data gnome-session
521 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
522 Need to get 0B of archives. After unpacking 14.6MB will be freed.
523 Do you want to continue? [Y/n]</example>
524 </p>
525 <p>
526 Come si può vedere nell'esempio sopra, APT si occupa di rimuovere anche
527 i pacchetti che dipendono da quello che si è chiesto di rimuovere. Non
528 c'è modo, usando APT, di rimuovere un pacchetto senza che siano rimossi
529 anche i pacchetti che dipendono da questo.
530 </p>
531 <p>
532 Eseguendo <prgn>apt-get</prgn> come sopra, saranno rimossi i pacchetti
533 ma i loro file di configurazione, se ci sono, rimarranno intatti sul
534 sistema. Per una rimozione completa del pacchetto, eseguire:
535 </p>
536 <p>
537 <example># apt-get --purge remove gnome-panel
538 Reading Package Lists... Done
539 Building Dependency Tree... Done
540 The following packages will be REMOVED:
541 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
542 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
543 Need to get 0B of archives. After unpacking 14.6MB will be freed.
544 Do you want to continue? [Y/n]</example>
545 </p>
546 <p>
547 Notare gli "*" dopo i nomi. Indicano che anche i file di configurazione
548 di questi pacchetti saranno rimossi.
549 </p>
550 <p>
551 Come nel caso del metodo <tt>install</tt>, si può usare un simbolo per
552 invertire il significato del metodo per un particolare pacchetto. Nel
553 caso di <tt>remove</tt> se si aggiunge "+" alla fine del nome del
554 pacchetto, il pacchetto sarà installato anziché essere rimosso.
555 </p>
556 <p>
557 <example># apt-get --purge remove gnome-panel nautilus+
558 Reading Package Lists... Done
559 Building Dependency Tree... Done
560 The following extra packages will be installed:
561 bonobo libmedusa0 libnautilus0 nautilus
562 The following packages will be REMOVED:
563 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
564 The following NEW packages will be installed:
565 bonobo libmedusa0 libnautilus0 nautilus
566 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
567 Need to get 8329kB of archives. After unpacking 2594kB will be used.
568 Do you want to continue? [Y/n]</example>
569 </p>
570 <p>
571 Notare che <prgn>apt-get</prgn> elenca i pacchetti extra che saranno
572 installati (cioè i pacchetti di cui è necessaria l'installazione per il
573 corretto funzionamento dei pacchetti richiesti), i pacchetti che
574 saranno rimossi e i nuovi pacchetti che saranno installati (compresi,
575 ancora una volta, i pacchetti extra).
576 </p>
577 </sect>
578 <sect id="upgrade">
579 <heading>
580 Aggiornamento dei pacchetti
581 </heading>
582 <p>
583 Gli aggiornamenti dei pacchetti sono un grande successo di APT. Possono
584 essere realizzati con un singolo comando: <tt>apt-get upgrade</tt>. Si
585 può usare questo comando sia per aggiornare i pacchetti della stessa
586 distribuzione, sia per aggiornare a una nuova distribuzione, benché per
587 questo scopo si consiglia: <tt>apt-get dist-upgrade</tt>; vedere <ref
588 id="dist-upgrade"> per ulteriori dettagli.
589 </p>
590 <p>
591 &Egrave; utile eseguire questo comando con l'opzione
592 <tt>-u</tt>. Questa opzione forza APT a mostrare la lista completa dei
593 pacchetti che saranno aggiornati, senza l'aggiornamento avverrà senza
594 mostrare nulla. APT scaricherà la versione più recente di ogni
595 pacchetto e li installerà nel giusto ordine. &Egrave; importante
596 eseguire sempre <tt>apt-get update</tt> prima di provare
597 l'aggiornamento. A questo proposito consultare <ref
598 id="update">. Osservare questo esempio:
599 </p>
600 <p>
601 <example># apt-get -u upgrade
602 Reading Package Lists... Done
603 Building Dependency Tree... Done
604 The following packages have been kept back
605 cpp gcc lilo
606 The following packages will be upgraded
607 adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
608 ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
609 libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
610 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
611 29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
612 Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
613 Do you want to continue? [Y/n]</example>
614 </p>
615 <p>
616 Il procedimento è molto semplice. Notare che nelle prime righe,
617 <tt>apt-get</tt> informa che alcuni pacchetti saranno trattenuti
618 (<tt>kept back</tt>). Questo significa che esistono nuove versioni di
619 questi pacchetti ma che non saranno installate per qualche
620 ragione. Motivi possibili sono la presenza di dipendenze che non
621 possono essere soddisfatte (uno dei pacchetti da cui dipende non è
622 disponibile per il download) o nuove dipendenze (il pacchetto ha
623 aggiunto una nuova dipendenza nell'ultima versione).
624 </p>
625 <p>
626 Non c'è una soluzione semplice nel primo caso. Nel secondo caso è
627 sufficiente lanciare <tt>apt-get install</tt> per il pacchetto in
628 questione e le dipendenze saranno risolte. Una soluzione altrettanto
629 valida è usare <tt>dist-upgrade</tt>. Controllare in <ref
630 id="dist-upgrade">.
631 </p>
632 </sect>
633 <sect id="dist-upgrade">
634 <heading>
635 Aggiornare a una nuova release
636 </heading>
637 <p>
638 Questa caratteristica di APT permette di aggiornare l'intero sistema in
639 una volta sola, sia attraverso internet che attraverso un CD
640 (acquistato o scaricato come immagine ISO).
641 </p>
642 <p>
643 &Egrave; usata anche quando ci sono delle modifiche alle relazioni fra
644 i pacchetti installati. Con <tt>apt-get upgrade</tt>, questi pacchetti
645 saranno lasciati intoccati (<tt>kept back</tt>).
646 </p>
647 <p>
648 Per esempio, supponiamo che si stia usando la release 0 della versione
649 stable di Debian e che abbiamo comprato un CD con la release 3. Si può
650 usare APT per aggiornare il sistema da questo nuovo CD. Si usa
651 <prgn>apt-cdrom</prgn> (guardare <ref id="cdrom">) per aggiungere il CD
652 al file <tt>/etc/apt/sources.list</tt> e poi si esegue <tt>apt-get
653 dist-upgrade</tt>.
654 </p>
655 <p>
656 &Egrave; importante notare che APT cerca sempre la versione più recente
657 dei pacchetti. Quindi, se nel file <tt>/etc/apt/sources.list</tt> è
658 elencato un archivio che contiene una versione di un pacchetto più
659 recente di quella sul CD, APT vorrà scaricare il pacchetto da
660 quell'archivio.
661 </p>
662 <p>
663 Nell'esempio mostrato in <ref id="upgrade">, abbiamo visto che alcuni
664 pacchetti possono essere trattenuti (<tt>kept back</tt>). Adesso questo
665 problema verrà risolto con il metodo <tt>dist-upgrade</tt>:
666 </p>
667 <p>
668 <example># apt-get -u dist-upgrade
669 Reading Package Lists... Done
670 Building Dependency Tree... Done
671 Calculating Upgrade... Done
672 The following NEW packages will be installed:
673 cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
674 libpcre2 logrotate mailx
675 The following packages have been kept back
676 lilo
677 The following packages will be upgraded
678 adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
679 indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
680 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
681 liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
682 procps psmisc
683 31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
684 Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
685 Do you want to continue? [Y/n]</example>
686 </p>
687 <p>
688 Adesso va osservato che alcuni pacchetti saranno aggiornati e altri
689 nuovi saranno installati (le nuove dipendenze dei pacchetti già
690 installati). Notare che <package>lilo</package> continua a essere
691 trattenuto, probabilmente ha qualche altro problema che è più serio di
692 una nuova dipendenza. Lo si può scoprire eseguendo:
693 </p>
694 <p>
695 <example># apt-get -u install lilo
696 Reading Package Lists... Done
697 Building Dependency Tree... Done
698 The following extra packages will be installed:
699 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
700 logrotate mailx
701 The following packages will be REMOVED:
702 debconf-tiny
703 The following NEW packages will be installed:
704 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
705 logrotate mailx
706 The following packages will be upgraded
707 lilo
708 1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
709 Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
710 Do you want to continue? [Y/n]</example>
711 </p>
712 <p>
713 Come si può notare sopra, la nuova versione di <package>lilo</package>
714 è in conflitto con <package>debconf-tiny</package>, questo significa
715 che non può essere installato (o aggiornato) senza rimuovere
716 <package>debconf-tiny</package>.
717 </p>
718 <p>
719 Per sapere quali pacchetti saranno rimossi o non-aggiornati si può
720 usare:
721 </p>
722 <p>
723 <example># apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
724 Reading Package Lists... Done
725 Building Dependency Tree... Done
726 Calculating Upgrade... Starting
727 Starting 2
728 Investigating python1.5
729 Package python1.5 has broken dep on python1.5-base
730 Considering python1.5-base 0 as a solution to python1.5 0
731 Holding Back python1.5 rather than change python1.5-base
732 Investigating python1.5-dev
733 Package python1.5-dev has broken dep on python1.5
734 Considering python1.5 0 as a solution to python1.5-dev 0
735 Holding Back python1.5-dev rather than change python1.5
736 Try to Re-Instate python1.5-dev
737 Done
738 Done
739 The following packages have been kept back
740 gs python1.5-dev
741 0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.</example>
742 </p>
743 <p>
744 In questo modo è facile vedere che il pacchetto python1.5-dev non può
745 essere installato perché c'è una dipendenza non soddisfatta: python1.5.
746 </p>
747 </sect>
748 <sect id="clean">
749 <heading>
750 Rimozione dei file dei pacchetti: apt-get clean e autoclean
751 </heading>
752 <p>
753 Quando si installa un pacchetto APT recupera tutti i file necessari
754 delle sorgenti specificate in /etc/apt/sources.list, gli immagazzina in
755 un archivio locale (<file>/var/cache/apt/archives/</file>) e poi
756 procede con l'installazione. Vedere <ref id="install">.
757 </p>
758 <p>
759 Con il tempo l'archivio locale cresce e può occupare molto spazio sul
760 disco. Fortunatamente APT fornisce gli strumenti per la gestione di
761 questo archivio: i metodi <tt>clean</tt> e <tt>autoclean</tt> di
762 <prgn>apt-get</prgn>.
763 </p>
764 <p>
765 <prgn>apt-get clean</prgn> elimina qualunque cosa, tranne i file lock,
766 dalle directory <file>/var/cache/apt/archives/</file> e
767 <file>/var/cache/apt/archives/partial/</file>. Di conseguenza, se si
768 volesse reinstallare un pacchetto APT dovrà nuovamente scaricarlo.
769 </p>
770 <p>
771 <prgn>apt-get autoclean</prgn> cancella solo i file dei pacchetti che
772 non possono più essere scaricati.
773 </p>
774 <p>
775 Il prossimo esempio mostra come lavora apt-get autoclean:
776 </p>
777 <p>
778 <example># ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
779 logrotate_3.5.9-7_i386.deb
780 logrotate_3.5.9-8_i386.deb
781 gpm_1.19.6-11_i386.deb</example>
782 </p>
783 <p>
784 Nella directory /var/cache/apt/archives ci sono due file che forniscono
785 il pacchetto <package>logrotate</package> e uno che fornisce il
786 pacchetto <package>gpm</package>.
787 </p>
788 <p>
789 <example># apt-show-versions -p logrotate
790 logrotate/stable uptodate 3.5.9-8
791 # apt-show-versions -p gpm
792 gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12</example>
793 </p>
794 <p>
795 <prgn>apt-show-versions</prgn> mostra che
796 <file>logrotate_3.5.9-8_i386.deb</file> fornisce la versione aggiornata
797 di <package>logrotate</package>, quindi il file
798 <file>logrotate_3.5.9-7_i386.deb</file> è inutile. Anche il file
799 <file>gpm_1.19.6-11_i386.deb</file> è inutile perché è disponibile una
800 versione più recente.
801 </p>
802 <p>
803 <example># apt-get autoclean
804 Reading Package Lists... Done
805 Building Dependency Tree... Done
806 Del gpm 1.19.6-11 [145kB]
807 Del logrotate 3.5.9-7 [26.5kB]</example>
808 </p>
809 <p>
810 Infine, <tt>apt-get autoclean</tt>, rimuove solo i file inutili. Vedere
811 <ref id="apt-show-versions"> per ulteriori informazioni su
812 apt-show-versions.
813 </p>
814 </sect>
815 <sect id="dselect-upgrade">
816 <heading>
817 Usare APT insieme a dselect
818 </heading>
819 <p>
820 <prgn>dselect</prgn> è un programma che aiuta gli utenti a scegliere
821 quali pacchetti installare. &Egrave; ritenuto piuttosto complicato e
822 abbastanza noioso, ma con la pratica si può acquisire familiarità con
823 la sua interfaccia basata su ncurses.
824 </p>
825 <p>
826 Una caratteristica di dselect è che sa usare la capacità che hanno i
827 pacchetti Debian di "raccomandare" e "consigliare" l'installazione di
828 altri pacchetti. Per avviare il programma, usare <tt>dselect</tt> da
829 root, scegliere "apt" come metodo di accesso (non è obbligatorio, ma se
830 non si sta usando un CD-ROM e si vuole scaricare i pacchetti da
831 internet, è il miglior modo d'usare dselect).
832 </p>
833 <p>
834 Per approfondire l'uso di dselect, leggere la documentazione sul sito
835 Debian <url id="http://www.debian.org/doc/ddp"
836 name="http://www.debian.org/doc/ddp">.
837 </p>
838 <p>
839 Dopo aver fatto le scelte con dselect, usare:
840 </p>
841 <p>
842 <example># apt-get -u dselect-upgrade</example>
843 </p>
844 <p>
845 come nell'esempio sotto:
846 </p>
847 <p>
848 <example># apt-get -u dselect-upgrade
849 Reading Package Lists... Done
850 Building Dependency Tree... Done
851 The following packages will be REMOVED:
852 lbxproxy
853 The following NEW packages will be installed:
854 bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
855 gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
856 libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
857 libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
858 util-linux-locales vacation xbill xplanet-images
859 The following packages will be upgraded
860 debian-policy
861 1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded.
862 Need to get 7140kB of archives. After unpacking 16.3MB will be used.
863 Do you want to continue? [Y/n]</example>
864 </p>
865 <p>
866 Questo è quello che si ottiene esguendo <tt>apt-get dist-upgrade</tt>
867 sullo stesso sistema:
868 </p>
869 <p>
870 <example># apt-get -u dist-upgrade
871 Reading Package Lists... Done
872 Building Dependency Tree... Done
873 Calculating Upgrade... Done
874 The following packages will be upgraded
875 debian-policy
876 1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
877 Need to get 421kB of archives. After unpacking 25.6kB will be freed.
878 Do you want to continue? [Y/n]</example>
879 </p>
880 <p>
881 Notare che molti dei pacchetti elencati sopra sono installati perché
882 sono "consigliati" o "raccomandati" da altri pacchetti. Altri sono
883 installati o rimossi (nell'esempio lbxproxy) per le scelte che sono
884 state fatte nella lista dei pacchetti con dselect. Dselect può essere
885 uno strumento davvero potente se usato insieme ad APT.
886 </p>
887 </sect>
888 <sect id="default-version">
889 <heading>
890 Come mantenere un sistema misto
891 </heading>
892 <p>
893 Alcune volte le persone vogliono usare una delle versioni Debian come
894 distribuzione per il sistema principale e uno o più pacchetti di un
895 altro ramo.
896 </p>
897 <p>
898 Per impostare qual è la versione di Debian principale è necessario
899 modificare la seguente riga del file <file>/etc/apt/apt.conf</file>:
900 </p>
901 <p>
902 <example>APT::Default-Release "<var>versione</var>";</example>
903 </p>
904 <p>
905 Dove <var>versione</var> è la versione di Debian che si desidera usare
906 come distribuzione principale. Le versioni che si possono usare sono
907 <tt>stable</tt>, <tt>testing</tt> e <tt>unstable</tt>. Poi, per
908 installare pacchetti di un'altra versione, si dovrà usare APT nel
909 seguente modo:
910 </p>
911 <p>
912 <example># apt-get -t <var>distribuzione</var> install <var>pacchetto</var></example>
913 </p>
914 <p>
915 Per funzionare è necessario specificare nel file
916 <file>/etc/apt/sources.list</file> fra le sorgenti per APT almeno una
917 riga per la distribuzione da cui si vuole prelevare il pacchetto e che
918 il pacchetto sia disponibile tramite quella fonte.
919 </p>
920 <p>
921 &Egrave; anche possibile richiedere l'installazione di una specifica
922 versione di un pacchetto usando la seguente sintassi:
923 <example># apt-get install <var>pacchetto</var>=<var>versione</var></example>
924 Per esempio, con la prossima riga è possibile installare la versione
925 <tt>2.2.4-1</tt> del pacchetto <package>nautilus</package>:
926 <example># apt-get install nautilus=2.2.4-1</example>
927 </p>
928 <p>
929 <em>IMPORTANTE</em>: la versione "unstable" è la versione di Debian che
930 contiene i nuovi pacchetti e i più recenti aggiornamenti. Questa
931 distribuzione segue tutti i cambiamenti dei pacchetti, dai più piccoli
932 ai più drastici che possono influenzare molti altri pacchetti o
933 l'intero sistema. Per questo motivo, questa versione della
934 distribuzione <em>non</em> dovrebbe essere usata da utenti inesperti o
935 da chi necessita di una collaudata stabilità.
936 </p>
937 <p>
938 La distribuzione "testing" non è necessariamente migliore di
939 "unstable", dato che non riceve rapidamente gli aggiornamenti di
940 sicurezza. Per i server e per i sistemi di produzione si dovrebbe usare
941 sempre la distribuzione "stable".
942 </p>
943 </sect>
944 <sect id="apt-show-versions">
945 <heading>
946 Come aggiornare i pacchetti di una specifica distribuzione Debian
947 </heading>
948 <p>
949 <prgn>apt-show-versions</prgn> fornisce agli utenti delle distribuzioni
950 miste un modo sicuro per aggiornare i loro sistemi senza ottenere poi
951 una distribuzione meno stabile di quella che hanno in mente. Per
952 esempio, è possibile aggiornare solo i pacchetti di unstable eseguendo
953 dopo aver installato il pacchetto <package>apt-show-versions</package>:
954 </p>
955 <p>
956 <example># apt-get install `apt-show-versions -u -b | grep unstable | cut -d ' ' -f 1`</example>
957 </p>
958 </sect>
959 <sect id="pin">
960 <heading>
961 Come bloccare una specifica versione di un pacchetto installata (i pin)
962 </heading>
963 <p>
964 Può capitare di modificare qualcosa in un pacchetto e che non si abbia
965 voglia o tempo, di apportare questi cambiamenti a una nuova versione
966 del programma. Oppure, per esempio, si vuole aggiornare la
967 distribuzione alla 3.0, ma si vuole continuare a usare alcuni pacchetti
968 nella versione presente nella Debian 2.2. Per far questo si può
969 "fissare" questi pacchetti nella versione installata in modo che non
970 saranno aggiornati.
971 </p>
972 <p>
973 Usare questo mezzo è semplice. Basta solo modificare il file
974 <tt>/etc/apt/preferences</tt>.
975 </p>
976 <p>
977 Il formato è semplice:
978 </p>
979 <p>
980 <example>Package: &lt;pacchetto&gt;
981 Pin: &lt;definizione del pin&gt;
982 Pin-Priority: &lt;priorità del pin&gt;</example>
983 </p>
984 <p>
985 Ogni elemento deve essere separato dagli altri con una riga vuota. Per
986 esempio, per mantenere il pacchetto <package>sylpheed</package> che si
987 è modificato per usare "reply-to-list" nella versione 0.4.99 si
988 aggiunge:
989 </p>
990 <p>
991 <example>Package: sylpheed
992 Pin: version 0.4.99*</example>
993 </p>
994 <p>
995 Notare che si è usato un <tt>*</tt> (asterisco). Questo è un "carattere
996 jolly"; indica che questo "pin" è valido per tutte le versioni che
997 iniziano con 0.4.99. Questo perché Debian numera i suoi pacchetti
998 usando un "numero di revisione" e non si vuole impedire l'installazione
999 delle revisioni successive. Così, per esempio, le revisioni 0.4.99-1 e
1000 0.4.99-10 saranno installate non appena sono disponibili. Notare che se
1001 si è modificato il pacchetto non si vuole che questo accada.
1002 </p>
1003 <p>
1004 La priorità del pin determina se un pacchetto che verifica le righe
1005 "Packages:" e "Pin:" verrà installato; più è alta la priorità e
1006 maggiori sono le possibilità che il pacchetto sia installato. Si può
1007 leggere <manref section="7" name="apt_preferences"> per una profonda
1008 discussione sulle priorità, ma alcuni esempi possono rendere l'idea. Di
1009 seguito sono descritti gli effetti di diversi valori del campo priorità
1010 per l'esempio precedente.
1011 </p>
1012 <p>
1013 <taglist>
1014 <tag>
1015 1001
1016 </tag>
1017 <item>
1018 <p>
1019 La versione 0.4.99 di sylpheed non sarà mai sostituita da apt. Se
1020 disponibile apt installerà la versione 0.4.99 anche sostituendo una
1021 versione successiva del pacchetto già installata. Solo i pacchetti
1022 con priorità superiore a 1000 possono far retrocedere un pacchetto
1023 già installato.
1024 </p>
1025 </item>
1026 <tag>
1027 1000
1028 </tag>
1029 <item>
1030 <p>
1031 L'effetto è lo stesso della priorità con l'eccezione che apt si
1032 rifiuta di retrocedere la versione installata alla versione 0.4.99.
1033 </p>
1034 </item>
1035 <tag>
1036 990
1037 </tag>
1038 <item>
1039 <p>
1040 La versione 0.4.99 verrà sostituita solo da una versione successiva
1041 disponibile per la release impostata come preferita tramite la
1042 variabile "APT::Default-Release" (vedere <ref
1043 id="default-version">).
1044 </p>
1045 </item>
1046 <tag>
1047 500
1048 </tag>
1049 <item>
1050 <p>
1051 Qualsiasi versione successiva alla 0.4.99 di sylpheed disponibile da
1052 una qualunque release avrà precedenza sulla versione 0.4.99, ma la
1053 0.4.99 ha comunque la precedenza su tutte le versioni precedenti.
1054 </p>
1055 </item>
1056 <tag>
1057 100
1058 </tag>
1059 <item>
1060 <p>
1061 Le versioni successive di sylpheed disponibili da qualsiasi release
1062 hanno precedenza sulla versione 0.4.99 di conseguenza verrà
1063 installata qualsiasi versione successiva di sylpheed, la versione
1064 0.4.99 verrà installata solo se non c'è una versine già
1065 installata. Questa è la priorità dei pacchetti una volta che sono
1066 installati.
1067 </p>
1068 </item>
1069 <tag>
1070 -1
1071 </tag>
1072 <item>
1073 <p>
1074 Sono consentiti anche valori negativi per la priorità, impediscono
1075 che 0.4.99 sia installato.
1076 </p>
1077 </item>
1078 </taglist>
1079 </p>
1080 <p>
1081 Un pin può specificare la versione (<tt>version</tt>), la release
1082 (<tt>release</tt>) o l'origine (<tt>origin</tt>) di un pacchetto.
1083 </p>
1084 <p>
1085 Il pin su <tt>version</tt>, come abbiamo visto, ammette sia cifre che
1086 caratteri jolly per specificare più versioni contemporaneamente.
1087 </p>
1088 <p>
1089 L'opzione <tt>release</tt> dipende dal file Release nell'archivio usato
1090 da APT o nel CD. Questa opzione non può essere usata se l'archivio che
1091 si usa non fornisce questo file. Si può controllare il contenuto dei
1092 file Release in <tt>/var/lib/apt/lists/</tt>. I parametri per release
1093 sono: <tt>a</tt> (archive), <tt>c</tt> (components), <tt>v</tt>
1094 (version), <tt>o</tt> (origin) e <tt>l</tt> (label).
1095 </p>
1096 <p>
1097 Un esempio:
1098 </p>
1099 <p>
1100 <example>Package: *
1101 Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
1102 Pin-Priority: 1001</example>
1103 </p>
1104 <p>
1105 In questo esempio abbiamo scelto la versione 2.2* (che può essere
1106 2.2r2, 2.2r3; questi sono i "point release" che tipicamente includono
1107 le fix di sicurezza e altri importanti aggiornamenti), la versione
1108 <tt>stable</tt>, la sezione <tt>main</tt> (al posto di <tt>contrib</tt>
1109 o <tt>non-free</tt>) e come origine e etichetta Debian. Origine (o)
1110 definisce il nome della distribuzione: Debian per la Debian e Progeny
1111 per Progeny, per esempio. Un esempio del file Release:
1112 </p>
1113 <p>
1114 <example>$ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release
1115 Archive: stable
1116 Version: 2.2r3
1117 Component: main
1118 Origin: Debian
1119 Label: Debian
1120 Architecture: i386</example>
1121 </p>
1122 </sect>
1123 </chapt>
1124 <chapt id="helpers">
1125 <heading>
1126 Aiuti molto utili
1127 </heading>
1128 <sect id="equivs">
1129 <heading>
1130 Come installare i pacchetti compilati in proprio: equivs
1131 </heading>
1132 <p>
1133 Qualche volta si vuole usare una specifica versione di un programma
1134 disponibile solo tramite i sorgenti, senza alcun pacchetto Debian. Ma
1135 per il sistema di gestione dei pacchetti questo può essere un
1136 problema. Supponiamo che si voglia compilare una nuova versione del
1137 server e-mail. Non ci sarebbero problemi, ma molti pacchetti di Debian
1138 dipendono da un MTA (Mail Transport Agent) e, quando si installa
1139 qualcosa che abbiamo compilato in proprio, il sistema di gestione dei
1140 pacchetti non può sapere nulla del nuovo software.
1141 </p>
1142 <p>
1143 Qui entra in scena <package>equivs</package>. Per usarlo installare il
1144 pacchetto omonimo. Equivs crea un pacchetto vuoto che è capace di
1145 soddisfare qualunque dipendenza, facendo credere al sistema di gestione
1146 dei pacchetti che le dipendenze sono soddisfatte.
1147 </p>
1148 <p>
1149 Prima di iniziare è bene ricordare che esistono modi più sicuri per
1150 compilare un programma già impacchettato per Debian con opzioni
1151 differenti e che non si dovrebbe usare equivs per rimpiazzare le
1152 dipendenze se non sa quali possono essere le conseguenze sul
1153 sistema. Vedere <ref id="sourcehandling"> per ulteriori informazioni.
1154 </p>
1155 <p>
1156 Continuando con l'esempio del MTA: si è appena installato il
1157 neo-compilato <prgn>postfix</prgn> e ora si vuole installare
1158 <package>mutt</package>, però <package>mutt</package> richiede di
1159 installare un altro MTA. Ma ce ne già uno installato.
1160 </p>
1161 <p>
1162 Cambiare directory (<file>/tmp</file>, per esempio) ed eseguire:
1163 </p>
1164 <p>
1165 <example># equivs-control <var>nome</var></example>
1166 </p>
1167 <p>
1168 Mettere al posto di <var>name</var> il nome del file di controllo da
1169 creare. Il file che sarà creato è come quello che segue:
1170 </p>
1171 <p>
1172 <example>Section: misc
1173 Priority: optional
1174 Standards-Version: 3.0.1
1175
1176 Package: &lt;enter package name; defaults to equivs-dummy&gt;
1177 Version: &lt;enter version here; defaults to 1.0&gt;
1178 Maintainer: &lt;your name and email address; defaults to username&gt;
1179 Pre-Depends: &lt;packages&gt;
1180 Depends: &lt;packages&gt;
1181 Recommends: &lt;packages&gt;
1182 Suggests: &lt;package&gt;
1183 Provides: &lt;(virtual)package&gt;
1184 Architecture: all
1185 Copyright: &lt;copyright file; defaults to GPL2&gt;
1186 Changelog: &lt;changelog file; defaults to a generic changelog&gt;
1187 Readme: &lt;README.Debian file; defaults to a generic one&gt;
1188 Extra-Files: &lt;additional files for the doc directory, comma-seperated&gt;
1189 Description: &lt;short description; defaults to some wise words&gt;
1190 long description and info
1191 .
1192 second paragraph</example>
1193 </p>
1194 <p>
1195 Ora è necessario modificarlo in modo che faccia quello che si
1196 vuole. Qui verrà mostrato il formato dei soli campi necessari:
1197 </p>
1198 <p>
1199 <example>Section: misc
1200 Priority: optional
1201 Standards-Version: 3.0.1
1202
1203 Package: mta-local
1204 Provides: mail-transport-agent</example>
1205 </p>
1206 <p>
1207 <package>mutt</package> dipende da
1208 <package>mail-transport-agent</package>, che è un pacchetto virtuale
1209 fornito da tutti i MTA, si potrebbe semplicemente nominare il pacchetto
1210 <package>mail-transport-agent</package>, ma è preferibile usare lo
1211 schema dei pacchetti virtuali tramite "Provides".
1212 </p>
1213 <p>
1214 Ora serve solo creare il pacchetto:
1215 </p>
1216 <p>
1217 <example># equivs-build <var>name</var>
1218 dh_tstdir
1219 touch build-stamp
1220 dh_testdir
1221 dh_testroot
1222 dh_clean -k
1223 # Add here commands to install the package into debian/tmp.
1224 touch install-stamp
1225 dh_testdir
1226 dh_testroot
1227 dh_installdocs
1228 dh_installchangelogs
1229 dh_compress
1230 dh_fixperms
1231 dh_installdeb
1232 dh_gencontrol
1233 dh_md5sums
1234 dh_builddeb
1235 dpkg-deb: building package `<var>name</var>' in `../<var>name</var>_1.0_all.deb'.
1236
1237 The package has been created.
1238 Attention, the package has been created in the current directory,</example>
1239 </p>
1240 <p>
1241 e installare il <tt>.deb</tt> finale.
1242 </p>
1243 <p>
1244 Come si può vedere ci sono molti usi di <prgn>equivs</prgn>. Per
1245 esempio, si può creare un pacchetto <tt>my-fovorites</tt>, che dipende
1246 dai programmi che abitualmente si installano, per esempio. Si ha la più
1247 completa libertà di scelta, ma si deve valutare attentamente quello che
1248 si ha intenzione di fare.
1249 </p>
1250 <p>
1251 Infine notare che ci sono vari esempi di file di controllo in
1252 <file>/usr/share/doc/equivs/example</file>.
1253 </p>
1254 </sect>
1255 <sect id="localepurge">
1256 <heading>
1257 Rimuovere i file di localizzazione inutilizzati: localepurge
1258 </heading>
1259 <p>
1260 Molti utenti Debian usano una sola impostazione internazionale. Un
1261 utente brasiliano, per esempio, generalmente usa <em>locale</em>
1262 settato come <tt>pt_BR</tt> tutto il tempo e non gli interessa avere a
1263 disposizione anche <tt>es</tt>.
1264 </p>
1265 <p>
1266 <package>localepurge</package> è uno strumento molto utile per questi
1267 utenti, infatti possono liberare molto spazio mantenendo solo i file di
1268 localizzazione che realmente usano. Per installare localepurge:
1269 <tt>apt-get install localepurge</tt>.
1270 </p>
1271 <p>
1272 Questo pacchetto è veramente semplice da configurare dato che debconf
1273 guida l'utente passo dopo passo nella sua configurazione. Tuttavia si
1274 deve porre attenzione alle risposte delle prime domande, che, se non
1275 corrette, potrebbero causare la rimozione di tutti i file di
1276 localizzazione, compresi quelli che si indendeva mantenere. In questo
1277 caso, l'unico modo per ripristinare questi file è reinstallare i
1278 pacchetti che li forniscono.
1279 </p>
1280 </sect>
1281 <sect id="helper-show-versions">
1282 <heading>
1283 Come sapere quali pacchetti potrebbero essere aggiornati
1284 </heading>
1285 <p>
1286 <prgn>apt-show-versions</prgn> è un programma che mostra quali
1287 pacchetti del sistema potrebbero essere aggiornati e altre utili
1288 informazioni. L'opzione <tt>-u</tt> visualizza un elenco dei pacchetti
1289 aggiornabili:
1290 </p>
1291 <p>
1292 <example>$ apt-show-versions -u
1293 libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
1294 libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7</example>
1295 </p>
1296 </sect>
1297 </chapt>
1298 <chapt id="search">
1299 <heading>
1300 Ottenere informazioni sui pacchetti
1301 </heading>
1302 <p>
1303 Ci sono vari front-end per APT che rendono più semplice avere la lista
1304 dei pacchetti disponibili per l'installazione o di quelli già
1305 installati, così come scoprire a quale sezione appartiene un pacchetto,
1306 qual è la sua priorità, qual è la sua descrizione, ecc.
1307 </p>
1308 <p>
1309 Ma lo scopo è imparare ad usare APT. Come si può conoscere il nome di un
1310 pacchetto che si desidera installare?
1311 </p>
1312 <p>
1313 Sono disponibili alcuni programmi ognuno con il suo specifico
1314 compito. Inizieremo con <tt>apt-cache</tt>. Questo programma è usato da
1315 APT per gestire il suo database. Faremo un breve riassunto sulle sue
1316 applicazioni più comuni.
1317 </p>
1318 <sect id="cache">
1319 <heading>
1320 Avere informazioni sui nomi dei pacchetti
1321 </heading>
1322 <p>
1323 Per esempio, supponiamo che si voglia ricordare i bei vecchi tempi
1324 dell'Atari 2600. Si vuole usare APT per installare un emulatore
1325 dell'Atari e per scaricare qualche gioco. Si può fare così:
1326 </p>
1327 <p>
1328 <example># apt-cache search atari
1329 atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
1330 circuslinux - The clowns are trying to pop balloons to score points!
1331 madbomber - A Kaboom! clone
1332 tcs - Character set translator.
1333 atari800 - Atari emulator for svgalib/X/curses
1334 stella - Atari 2600 Emulator for X windows
1335 xmess-x - X binaries for Multi-Emulator Super System</example>
1336 </p>
1337 <p>
1338 Sono presenti parecchi pacchetti che riguardano quello che si stava
1339 cercando, e tutti hanno una breve descrizione. Per avere più
1340 informazioni su un pacchetto, si può usare:
1341 </p>
1342 <p>
1343 <example># apt-cache show stella
1344 Package: stella
1345 Priority: extra
1346 Section: non-free/otherosfs
1347 Installed-Size: 830
1348 Maintainer: Tom Lear &lt;tom@trap.mtview.ca.us&gt;
1349 Architecture: i386
1350 Version: 1.1-2
1351 Depends: libc6 (&gt;= 2.1), libstdc++2.10, xlib6g (&gt;= 3.3.5-1)
1352 Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
1353 Size: 483430
1354 MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
1355 Description: Atari 2600 Emulator for X windows
1356 Stella is a portable emulator of the old Atari 2600 video-game console
1357 written in C++. You can play most Atari 2600 games with it. The latest
1358 news, code and binaries for Stella can be found at:
1359 http://www4.ncsu.edu/~bwmott/2600</example>
1360 </p>
1361 <p>
1362 Questo è l'output con molti più dettagli sul pacchetto che si desidera
1363 (o non si desidera) installare. Se il pacchetto è già installato sul
1364 sistema e ne esiste una nuova versione saranno mostrate le informazioni
1365 su entrambe le versioni. Per esempio:
1366 </p>
1367 <p>
1368 <example># apt-cache show lilo
1369 Package: lilo
1370 Priority: important
1371 Section: base
1372 Installed-Size: 271
1373 Maintainer: Russell Coker &lt;russell@coker.com.au&gt;
1374 Architecture: i386
1375 Version: 1:21.7-3
1376 Depends: libc6 (&gt;= 2.2.1-2), debconf (&gt;=0.2.26), logrotate
1377 Suggests: lilo-doc
1378 Conflicts: manpages (&lt;&lt;1.29-3)
1379 Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
1380 Size: 143052
1381 MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
1382 Description: LInux LOader - The Classic OS loader can load Linux and others
1383 This Package contains lilo (the installer) and boot-record-images to
1384 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1385 .
1386 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1387 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1388
1389 Package: lilo
1390 Status: install ok installed
1391 Priority: important
1392 Section: base
1393 Installed-Size: 190
1394 Maintainer: Vincent Renardias &lt;vincent@debian.org&gt;
1395 Version: 1:21.4.3-2
1396 Depends: libc6 (&gt;= 2.1.2)
1397 Recommends: mbr
1398 Suggests: lilo-doc
1399 Description: LInux LOader - The Classic OS loader can load Linux and others
1400 This Package contains lilo (the installer) and boot-record-images to
1401 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1402 .
1403 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1404 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.</example>
1405 </p>
1406 <p>
1407 Notare che il primo pacchetto nella lista dell'esempio precedente è la
1408 versione disponibile per l'installazione e il secondo è quello già
1409 installato. Per avere delle informazioni generali su un pacchetto si
1410 può usare:
1411 </p>
1412 <p>
1413 <example># apt-cache showpkg penguin-command
1414 Package: penguin-command
1415 Versions:
1416 1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
1417
1418 Reverse Depends:
1419 Dependencies:
1420 1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
1421 Provides:
1422 1.4.5-1 -
1423 Reverse Provides:</example>
1424 </p>
1425 <p>
1426 E per sapere solo quali sono le dipendenze:
1427 </p>
1428 <p>
1429 <example># apt-cache depends penguin-command
1430 penguin-command
1431 Depends: libc6
1432 Depends: libpng2
1433 Depends: libsdl-mixer1.1
1434 Depends: libsdl1.1
1435 Depends: zlib1g</example>
1436 </p>
1437 <p>
1438 Ricapitolando, abbiamo un'ampia gamma di strumenti che possiamo usare
1439 per trovare il nome dei pacchetti che vogliamo.
1440 </p>
1441 </sect>
1442 <sect id="dpkg-search">
1443 <heading>
1444 Usare dpkg per avere informazioni sui pacchetti
1445 </heading>
1446 <p>
1447 Un modo per individuare un pacchetto è conoscere il nome di un file che
1448 può essere trovato al suo interno. Per esempio, per trovare il
1449 pacchetto che fornisce un particolare ".h" necessario per compilare un
1450 programma si può eseguire:
1451 </p>
1452 <p>
1453 <example># dpkg -S stdio.h
1454 libc6-dev: /usr/include/stdio.h
1455 libc6-dev: /usr/include/bits/stdio.h
1456 perl: /usr/lib/perl/5.6.0/CORE/nostdio.h</example>
1457 </p>
1458 <p>
1459 oppure:
1460 </p>
1461 <p>
1462 <example># dpkg -S /usr/include/stdio.h
1463 libc6-dev: /usr/include/stdio.h</example>
1464 </p>
1465 <p>
1466 Per avere i nomi dei pacchetti installati nel sistema, utile in
1467 previsione di "pulizia" dei dischi, si può lanciare:
1468 </p>
1469 <p>
1470 <example># dpkg -l | grep mozilla
1471 ii mozilla-browse 0.9.6-7 Mozilla Web Browser</example>
1472 </p>
1473 <p>
1474 Il problema di questo commando è che può "spezzare" il nome del
1475 pacchetto. Nell'esempio sopra il nome intero del pacchetto è
1476 <tt>mozilla-browser</tt>, per sistemare questo inconveniente si può
1477 usare la variabile d'ambiente <tt>COLUMNS</tt> in questo modo:
1478 </p>
1479 <p>
1480 <example>$ COLUMNS=132 dpkg -l | grep mozilla
1481 ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser</example>
1482 </p>
1483 <p>
1484 o fare una ricerca sulla descrizione o su parte di essa:
1485 </p>
1486 <p>
1487 <example># apt-cache search "Mozilla Web Browser"
1488 mozilla-browser - Mozilla Web Browser</example>
1489 </p>
1490 </sect>
1491 <sect id="auto-apt">
1492 <heading>
1493 Come installare pacchetti "on demand"
1494 </heading>
1495 <p>
1496 Si sta compilando un programma e, a un certo punto, boom! C'è un errore
1497 perché è necessario un file <tt>.h</tt> che non è installato. Il
1498 programma <prgn>auto-apt</prgn> può essere utile in questa
1499 situazione. Questo programma ferma l'esecuzione del processo
1500 principale, chiede di installare i pacchetti necessari e, una volta
1501 installati, prosegue nell'esecuzione del processo principale.
1502 </p>
1503 <p>
1504 Quello che si deve fare è lanciare:
1505 </p>
1506 <p>
1507 <example># auto-apt run command</example>
1508 </p>
1509 <p>
1510 Dove "command" è il comando che deve essere eseguito a cui potrebbero
1511 mancare alcuni file. Per esempio:
1512 </p>
1513 <p>
1514 <example># auto-apt run ./configure</example>
1515 </p>
1516 <p>
1517 Questo chiederà di installare i pacchetti necessari e, se li vogliamo
1518 installare, chiama automaticamente apt-get. Gli utenti che usano X
1519 possono usare anche un'interfaccia grafica anziché la normale
1520 interfaccia testuale.
1521 </p>
1522 <p>
1523 Per funzionare correttamente auto-apt usa un database che deve essere
1524 tenuto aggiornato. Questo può essere fatto usando i commandi
1525 <tt>auto-apt update</tt>, <tt>auto-apt updatedb</tt> e <tt>auto-apt
1526 update-local</tt>.
1527 </p>
1528 </sect>
1529 <sect id="apt-file">
1530 <heading>
1531 Come scoprire a quale pacchetto appartiene un file
1532 </heading>
1533 <p>
1534 Se si vuole installare un pacchetto, di cui non si riesce a scoprire il
1535 nome usando <prgn>apt-cache</prgn>, ma di cui si conosce il nome del
1536 programma o di un file che è contenuto nel pacchetto, si può usare
1537 <prgn>apt-file</prgn> per trovare il nome del pacchetto in questo modo:
1538 </p>
1539 <p>
1540 <example>$ apt-file search <var>file</var></example>
1541 </p>
1542 <p>
1543 Funziona come <tt>dpkg -S</tt>, con la differenza che la ricerca è
1544 effettuata anche nei pacchetti non installati. Può anche essere usato
1545 per scoprire quali pacchetti contengono i file mancanti quando si
1546 compilano dei programmi, anche se <prgn>auto-apt</prgn> sia un metodo
1547 molto migliore per risolvere questo genere di problemi, vedere <ref
1548 id="auto-apt">.
1549 </p>
1550 <p>
1551 &Egrave; anche possibile vedere contenuto di un pacchetto eseguendo:
1552 </p>
1553 <p>
1554 <example>$ apt-file list <var>pacchetto</var></example>
1555 </p>
1556 <p>
1557 <prgn>apt-file</prgn> tiene un database del contenuto di tutti i
1558 pacchetti, come fa auto-apt, e questo dev'essere tenuto aggiornato. Lo
1559 si fa eseguendo:
1560 </p>
1561 <p>
1562 <example># apt-file update</example>
1563 </p>
1564 <p>
1565 <prgn>apt-file</prgn> usa lo stesso database di <prgn>auto-apt</prgn>,
1566 controllare <ref id="auto-apt">.
1567 </p>
1568 </sect>
1569 <sect id="apt-listchanges">
1570 <heading>
1571 Come essere informato sui cambiamenti nei pacchetti
1572 </heading>
1573 <p>
1574 Ogni pacchetto installa, nella sua directory dedicata alla
1575 documentazione (<tt>/usr/share/doc/pacchetto</tt>), un file chiamato
1576 <tt>changelog.Debian.gz</tt> che contiene l'elenco dei cambiamenti
1577 fatti al pacchetto sino all'ultima versione. &Egrave; possibile leggere
1578 questo file usando, per esempio, <tt>zless</tt> però non è semplice,
1579 dopo un aggiornamento completo del sistema, cercare i changelog di ogni
1580 pacchetto che è stato aggiornato.
1581 </p>
1582 <p>
1583 C'è un modo per automatizzare questo lavoro tramite l'uso di
1584 <prgn>apt-listchanges</prgn>. Per prima cosa si deve installare il
1585 pacchetto <package>apt-listchanges</package>. Durante l'installazione,
1586 debconf chiederà come lo si vuole configurare, anche se alcune domande,
1587 in base al livello di priorità impostato in Debconf, potrebbero non
1588 essere visualizzate, si consiglia di ricordare i seguenti suggerimenti
1589 mentre si risponde.
1590 </p>
1591 <p>
1592 la prima domanda chiede come apt-listchanges deve essere mostrare le
1593 modifiche, è possibile che siano inviate per posta (ideale per gli
1594 aggiornamenti automatici) o che siano mostrate in un impaginatore come
1595 <prgn>less</prgn> (in modo da consultarli prima di completare
1596 l'aggiornamento). Se non si vuole che <prgn>apt-listchanges</prgn> sia
1597 eseguito automaticamente durante gli aggiornamenti si può rispondere
1598 <tt>nessuno</tt>.
1599 </p>
1600 <p>
1601 Dopo aver installato apt-listchanges, appena i pacchetti sono
1602 disponibili per l'installazione (scaricati, presi da un CD, ecc.) apt
1603 mostrerà i changelog di questi pacchetti prima di installarli.
1604 </p>
1605 </sect>
1606 </chapt>
1607 <chapt id="sourcehandling">
1608 <heading>
1609 Lavorare con i pacchetti sorgente
1610 </heading>
1611 <sect id="source">
1612 <heading>
1613 Scaricare i pacchetti sorgente
1614 </heading>
1615 <p>
1616 Spesso nel mondo del software libero si fanno correzioni ai programmi
1617 che contengono dei bug. Per fare questo è necessario scaricare il
1618 sorgente del programma: APT fornisce un modo semplice per scaricare i
1619 sorgenti di un programma, compresi i file necessari per creare il
1620 pacchetto .deb.
1621 </p>
1622 <p>
1623 Un altro uso comune dei sorgenti è compilare su una distribuzione
1624 stable i pacchetti di testing o di unstable dato che, quelli presenti
1625 in quest'ultime, sono più recenti. Infatti, compilando un pacchetto su
1626 stable, sarà creato un .deb le cui dipendenze sono automaticamente
1627 aggiustate per operare in questa distribuzione.
1628 </p>
1629 <p>
1630 Per poter fare questo dev'essere specificata almeno una riga
1631 <tt>deb-src</tt> in <tt>/etc/apt/sources.list</tt> che punti ai
1632 pacchetti di testing o di unstable. Vedere <ref id="sources.list">.
1633 </p>
1634 <p>
1635 Per scaricare un pacchetto sorgente, si può usare il seguente comando:
1636 </p>
1637 <p>
1638 <example>$ apt-get source nomepacchetto</example>
1639 </p>
1640 <p>
1641 Questo scaricherà tre file: un <tt>.orig.tar.gz</tt>, un <tt>.dsc</tt>
1642 e un <tt>.diff.gz</tt>. Se un pacchetto è fatto specificamente per
1643 Debian, l'ultimo fra quelli elencati non è scaricato e al primo della
1644 lista mancherà <tt>orig</tt> nel nome.
1645 </p>
1646 <p>
1647 Il file <tt>.dsc</tt> è usato da dpkg-source per decomprimere il
1648 pacchetto sorgente nella directory
1649 <var>nomepacchetto-versione</var>. Dentro tutti i pacchetti sorgente,
1650 una volta scompattati, c'è dentro una directory <tt>debian/</tt> che
1651 contiene i file necessari per la costruzione del pacchetto .deb.
1652 </p>
1653 <p>
1654 Per automatizzare la costruzione del pacchetto, dopo aver scaricato i
1655 sorgenti, è sufficiente aggiungere l'opzione <tt>-b</tt> nella riga di
1656 comando:
1657 </p>
1658 <p>
1659 <example>$ apt-get -b source nomepacchetto</example>
1660 </p>
1661 <p>
1662 Se invece non si vuole creare il .deb al termine del download, lo si
1663 può creare successivamente lanciando:
1664 </p>
1665 <p>
1666 <example>$ dpkg-buildpackage -rfakeroot -uc -b</example>
1667 </p>
1668 <p>
1669 dopo essere entrati nella directory creata al termine del download del
1670 pacchetto. Per installare il pacchetto creato con i precedenti comandi
1671 si deve usare direttamente il gestore di pacchetti in questo modo:
1672 </p>
1673 <p>
1674 <example># dpkg -i <var>file.deb</var></example>
1675 </p>
1676 <p>
1677 C'è una differenza fra il metodo <tt>source</tt> e gli altri messi a
1678 disposizione da <prgn>apt-get</prgn>: tale metodo può essere usato da
1679 tutti gli utenti senza che questi abbiano i privilegi di root. I file
1680 sono scaricati nella directory dalla quale è stato lanciato il comando
1681 <tt>apt-get source pacchetto</tt>.
1682 </p>
1683 </sect>
1684 <sect id="build-dep">
1685 <heading>
1686 Soddisfare le dipendenze per compilare un pacchetto sorgente
1687 </heading>
1688 <p>
1689 Normalmente per compilare un pacchetto sorgente è necessario aver
1690 installato header e librerie appropriate. Tutti i pacchetti sorgente
1691 hanno nei loro file di controllo un campo chiamato "Build-Depends:" che
1692 indica quali pacchetti devono essere installati per poter costruire il
1693 pacchetto dai sorgenti.
1694 </p>
1695 <p>
1696 APT possiede un metodo veramente semplice per scaricare questi
1697 pacchetti. &Egrave; sufficiente lanciare <tt>apt-get build-dep
1698 pacchetto</tt>, dove "pacchetto" è il nome del pacchetto che si vuole
1699 compilare. Per esempio:
1700 </p>
1701 <p>
1702 <example># apt-get build-dep gmc
1703 Reading Package Lists... Done
1704 Building Dependency Tree... Done
1705 The following NEW packages will be installed:
1706 comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
1707 libgpmg1-dev
1708 0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
1709 Need to get 1069kB of archives. After unpacking 3514kB will be used.
1710 Do you want to continue? [Y/n]</example>
1711 </p>
1712 <p>
1713 Saranno installati i pacchetti necessari per la corretta compilazione
1714 del pacchetto <package>gmc</package>. &Egrave; importante notare che
1715 questo comando non recupera i file sorgente del pacchetto che si vuole
1716 compilare, per scaricarlo va lanciato prima <tt>apt-get source</tt>.
1717 </p>
1718 <p>
1719 Se invece si è interessati solo a controllare quali pacchetti sono
1720 necessari per compilare un certo pacchetto c'è una variante del comando
1721 <tt>apt-cache show</tt> (vedere <ref id="search">), che vi mostrerà fra
1722 le varie informazioni la riga <tt>Build-Depends</tt> in cui sono
1723 elencati questi pacchetti.
1724 </p>
1725 <p>
1726 <example># apt-cache showsrc <var>pacchetto</var></example>
1727 </p>
1728 </sect>
1729 </chapt>
1730 <chapt id="erros">
1731 <heading>
1732 Come trattare gli errori
1733 </heading>
1734 <sect id="erros-comuns">
1735 <heading>
1736 Errori banali
1737 </heading>
1738 <p>
1739 Gli errori sono sempre accaduti, molti di questi sono causati da utenti
1740 che non prestano attenzione. Quella che segue è una breve lista degli
1741 errori più frequenti e di come si possono risolvere.
1742 </p>
1743 <p>
1744 Se viene visualizzato un messaggio d'errore che assomiglia a questo
1745 quando si sta provando a installare un pacchetto con <tt>apt-get
1746 install package</tt>...
1747 </p>
1748 <p>
1749 <example>Reading Package Lists... Done
1750 Building Dependency Tree... Done
1751 W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_&percnt;7ekov_debian_unstable_Packages) - stat (2 No such file or directory)
1752 W: You may want to run apt-get update to correct these missing files
1753 E: Couldn't find package penguineyes</example>
1754 </p>
1755 <p>
1756 vuol dire che non si è lanciato <tt>apt-get update</tt> dopo l'ultima
1757 modifica al file <tt>/etc/apt/sources.list</tt>.
1758 </p>
1759 <p>
1760 Se l'errore assomiglia a questo:
1761 </p>
1762 <p>
1763 <example>E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
1764 E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?</example>
1765 </p>
1766 <p>
1767 quando si tenta di usare <prgn>apt-get</prgn> con qualunque metodo
1768 (tranne <tt>source</tt>), significa che non si hanno i permessi
1769 dell'utente root, cioè si sta eseguendo <prgn>apt-get</prgn> come un
1770 normale utente.
1771 </p>
1772 <p>
1773 C'è anche un errore simile al precedente che avviene quando si tenta di
1774 avviare più di un processo <prgn>apt-get</prgn> o quando
1775 <prgn>apt-get</prgn> è lanciato mentre è già attivo un processo
1776 <prgn>dpkg</prgn>. L'unico modo possibile per avere più processi
1777 <prgn>apt-get</prgn> attivi è usare il metodo <tt>source</tt>.
1778 </p>
1779 <p>
1780 Se un'installazione si blocca e non è più possibile né installare né
1781 rimuovere il pacchetto, provare con questi due comandi:
1782 </p>
1783 <p>
1784 <example># apt-get -f install
1785 # dpkg --configure -a</example>
1786 </p>
1787 <p>
1788 E poi tentare di nuovo. Potrebbe essere necessario ripetere più volte i
1789 comandi precedenti. Questa è una lezione importante per gli
1790 avventurieri che usano "unstable".
1791 </p>
1792 <p>
1793 Se si riceve l'errore "E: Dynamic MMap ran out of room" durante
1794 l'esecuzione di <tt>apt-get update</tt>, aggiungete la seguente riga a
1795 <file>/etc/apt/apt.conf</file>:
1796 <example>APT::Cache-Limit 10000000;</example>
1797 </p>
1798 </sect>
1799 <sect id="help">
1800 <heading>
1801 Dove posso trovare aiuto?
1802 </heading>
1803 <p>
1804 In caso di dubbi, consultare la vasta documentazione disponibile per il
1805 sistema di gestione dei pacchetti Debian. <tt>--help</tt> e le pagine
1806 di manuale possono essere d'aiuto, inoltre si può leggere la
1807 documentazione contenuta nelle directory <tt>/usr/share/doc</tt> e in
1808 particolare <tt>/usr/share/doc/apt</tt>.
1809 </p>
1810 <p>
1811 Se questa documentazione non è sufficiente, si può provare a cercare la
1812 risposta nell'archivio delle mailing list. Altre informazioni sulle
1813 mailing list si possono trovare sul sito web di Debian: <url
1814 id="http://www.debian.org" name="http://www.debian.org">.
1815 </p>
1816 <p>
1817 Tuttavia, queste mailing list dovrebbero essere usate solo dagli utenti
1818 Debian; gli utenti di altri sistemi troveranno un miglior supporto
1819 dalle communità che si occupano della propria distribuzione.
1820 </p>
1821 </sect>
1822 </chapt>
1823 <chapt id="distros">
1824 <heading>
1825 Quali distribuzioni supportano APT?
1826 </heading>
1827 <p>
1828 Di seguito sono elencati i nomi di alcune distribuzioni che usano APT:
1829 </p>
1830 <p>
1831 Debian GNU/Linux (<url id="http://www.debian.org"
1832 name="http://www.debian.org">) - la distribuzione per la quale è stato
1833 sviluppato APT
1834 </p>
1835 <p>
1836 Conectiva (<url id="http://www.conectiva.com.br"
1837 name="http://www.conectiva.com.br">) - è stata la prima distribuzione a
1838 fondere insieme APT con rpm
1839 </p>
1840 <p>
1841 Libranet (<url id="http://www.libranet.com"
1842 name="http://www.libranet.com">)
1843 </p>
1844 <p>
1845 Mandrake (<url id="http://www.mandrake.com"
1846 name="http://www.mandrake.com">)
1847 </p>
1848 <p>
1849 PLD (<url id="http://www.pld.org.pl" name="http://www.pld.org.pl">)
1850 </p>
1851 <p>
1852 Vine (<url id="http://www.vinelinux.org"
1853 name="http://www.vinelinux.org">)
1854 </p>
1855 <p>
1856 APT4RPM (<url id="http://apt4rpm.sf.net" name="http://apt4rpm.sf.net">)
1857 </p>
1858 <p>
1859 Alt Linux (<url id="http://www.altlinux.ru/"
1860 name="http://www.altlinux.ru/">)
1861 </p>
1862 <p>
1863 Red Hat (<url id="http://www.redhat.com/"
1864 name="http://www.redhat.com/">)
1865 </p>
1866 <p>
1867 Sun Solaris (<url id="http://www.sun.com/" name="http://www.sun.com/">)
1868 </p>
1869 <p>
1870 SuSE (<url id="http://www.suse.de/" name="http://www.suse.de/">)
1871 </p>
1872 <p>
1873 Yellow Dog Linux (<url id="http://www.yellowdoglinux.com/"
1874 name="http://www.yellowdoglinux.com/">)
1875 </p>
1876 </chapt>
1877 <chapt id="agradecimentos">
1878 <heading>
1879 Ringraziamenti
1880 </heading>
1881 <p>
1882 Un grande grazie va ai miei amici del progetto Debian-BR e a Debian in
1883 sé, che sono un aiuto costante per me e che sempre mi danno la forza per
1884 continuare a lavorare per il miglioramento dell'umanità, così come mi
1885 aiutano nel mio scopo di salvare il mondo. :)
1886 </p>
1887 <p>
1888 Voglio ringraziare il CIPSGA per l'enorme aiuto che ha dato al nostro
1889 progetto e a tutti i progetti liberi che nascono da grandi idee.
1890 </p>
1891 <p>
1892 E speciali ringraziamenti vanno a:
1893 </p>
1894 <p>
1895 Yooseong Yang &lt;yooseong@debian.org&gt;
1896 </p>
1897 <p>
1898 Michael Bramer &lt;grisu@debian.org&gt;
1899 </p>
1900 <p>
1901 Bryan Stillwell &lt;bryan@bokeoa.com&gt;
1902 </p>
1903 <p>
1904 Pawel Tecza &lt;pawel.tecza@poczta.fm&gt;
1905 </p>
1906 <p>
1907 Hugo Mora &lt;h.mora@melix.com.mx&gt;
1908 </p>
1909 <p>
1910 Luca Monducci &lt;luca.mo@tiscali.it&gt;
1911 </p>
1912 <p>
1913 Tomohiro KUBOTA &lt;kubota@debian.org&gt;
1914 </p>
1915 <p>
1916 Pablo Lorenzzoni &lt;spectra@debian.org&gt;
1917 </p>
1918 <p>
1919 Steve Langasek &lt;vorlon@netexpress.net&gt;
1920 </p>
1921 <p>
1922 Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
1923 </p>
1924 <p>
1925 Erik Rossen &lt;rossen@freesurf.ch&gt;
1926 </p>
1927 <p>
1928 Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt;
1929 </p>
1930 <p>
1931 Matt Kraai &lt;kraai@debian.org&gt;
1932 </p>
1933 <p>
1934 Aaron M. Ucko &lt;ucko@debian.org&gt;
1935 </p>
1936 <p>
1937 Jon &Aring;slund &lt;d98-jas@nada.kth.se&gt;
1938 </p>
1939 </chapt>
1940 <chapt id="novas">
1941 <heading>
1942 Nuove versioni di questo tutorial
1943 </heading>
1944 <p>
1945 Questo manuale è stato creato dal progetto <url
1946 id="http://www.debian-br.org" name="Debian-BR">, con lo scopo di
1947 agevolare l'uso quotidiano di Debian.
1948 </p>
1949 <p>
1950 Nuove versioni di questo documento saranno disponibili alla pagina del
1951 Progetto di Documentazione Debian <url
1952 id="http://www.debian.org/doc/ddp"
1953 name="http://www.debian.org/doc/ddp">.
1954 </p>
1955 <p>
1956 Commenti e critiche possono essere inviati per email all'autore
1957 <email>kov@debian.org</email>.
1958 </p>
1959 </chapt>
1960 </book>
1961 </debiandoc>

  ViewVC Help
Powered by ViewVC 1.1.5