1 <!-- -*- mode: sgml; mode: fold -*- -->
2 <!doctype debiandoc PUBLIC "-//DebianDoc//DTD DebianDoc//EN">
4 <title>Guida dell'utente di APT</title>
6 <author>Jason Gunthorpe <email>jgg@debian.org</email></author>
7 <author>Traduzione di Eugenia Franzoni <email>eugenia@linuxcare.com</email>
9 <version>$Id: guide.it.sgml,v 1.5 2003/04/26 23:26:13 doogie Exp $</version>
12 Guida per l'uso del gestore di pacchetti APT.
16 Copyright © Jason Gunthorpe, 1998.
18 <p>Ed. italiana Copyright © Eugenia Franzoni, 2000.
21 "APT" e questo documento sono software libero, e li si può ridistribuire
22 e/o modificare secondo i termini della Licenza Pubblica Generica GNU
23 (GPL), pubblicata dalla Free Software Foundation, nella versione 2 o
24 (se preferite) qualsiasi versione successiva.
26 <p>"APT" and this document are free software; you can redistribute them and/or
27 modify them under the terms of the GNU General Public License as published
28 by the Free Software Foundation; either version 2 of the License, or (at your
29 option) any later version.
32 Per ulteriori dettagli sui sistemi GNU/Linux si veda il testo
33 completo della licenza nel file
34 /usr/share/common-licenses/GPL.
40 <!-- ===================================================================== -->
41 <chapt>Descrizione generale
44 Il pacchetto APT al momento contiene due sezioni, il metodo APT
45 <prgn>dselect</> e l'interfaccia utente a linea di comando <prgn>apt-get</>;
46 entrambi danno modo di installare e rimuovere pacchetti, e di scaricarne
49 <sect>Anatomia del sistema di pacchettizzazione
51 Il sistema di pacchettizzazione di Debian contiene un gran numero di
52 informazioni associate a ciascun pacchetto, per assicurarsi che si
53 integri facilmente ed in maniera pulita nel sistema; la più
54 importante di esse è il sistema di dipendenze.
57 Il sistema di dipendenze permette ai singoli programmi di fare uso
58 degli elementi condivisi del sistema, quali le librerie; per
59 ridurre il numero di elementi che l'utente medio debba installare,
60 le porzioni di programmi che non vengono usate spesso vengono poste
61 in pacchetti separati. Inoltre, è possibile avere più di una scelta per
62 cose quali i programmi di posta elettronica, i server X e così via.
65 Il primo passo per capire il sistema di dipendenze è la
66 comprensione del concetto di dipendenza semplice: un pacchetto richiede
67 che un altro sia installato insieme ad esso per poter
72 Ad esempio, mail-crypt è un'estensione di emacs che aiuta a criptare le
73 mail con PGP. Se PGP non è installato, mail-crypt è inutile, quindi
74 mail-crypt ha una dipendenza semplice da PGP. Inoltre, dato che si tratta
75 di un'estensione di emacs, mail-crypt dipende anche da emacs, senza il
76 quale è totalmente inutile.
79 L'altro tipo di dipendenza importante da capire è la dipendenza di
80 conflitto; con questa, un pacchetto che venga installato insieme ad un
81 altro pacchetto non funziona, e si hanno seri problemi al sistema.
82 Come esempio, si consideri un programma di trasporto della posta,
83 quale sendmail, exim o qmail: non è possibile averne due contemporaneamente,
84 perché entrambi hanno bisogno di restare in ascolto sulla stessa porta di rete
85 per ricevere la posta. Tentare di installarne due danneggerebbe seriamente il
86 sistema, quindi ciascun programma di trasporto della posta ha una
87 dipendenza di conflitto con tutti gli altri.
90 Come ulteriore complicazione, c'è la possibilità che un pacchetto
91 voglia prendere il posto di un altro; ad esempio, exim e sendmail per molte
92 cose sono identici, dato che entrambi gestiscono la posta e comprendono
93 un'interfaccia comune, quindi il sistema di pacchettizzazione deve dichiarare
94 che sono entrambi agenti di trasporto della posta, e che gli altri
95 pacchetti a cui serve uno dei due devono dipendere da un pacchetto
96 fittizio agente-di-trasporto-della-posta. Quando si modificano
97 a mano i pacchetti, questo può portare a moltissima confusione.
100 In ciascun momento una singola dipendenza può essere soddisfatta o meno
101 dai pacchetti già installati; APT cerca di risolvere i problemi
102 di dipendenze con un buon numero di algoritmi automatici, che aiutano
103 a selezionare i pacchetti da installare.
109 <!-- ===================================================================== -->
113 <prgn>apt-get</> fornisce un modo semplice di installare i pacchetti dalla
114 linea di comando. Diversamente da <prgn>dpkg</>, <prgn>apt-get</> non
115 capisce i nomi dei file .deb, ma utilizza il vero nome dei pacchetti,
116 e può installare archivi .deb solo da una fonte.
119 La prima <footnote>Se state usando un proxy server http, dovete prima ancora
120 impostare la variabile d'ambiente http_proxy; vedere
121 sources.list(5).</footnote>
122 cosa da fare prima di usare <prgn>apt-get</> è impostare l'elenco dei
123 pacchetti dalle fonti in modo che il programma sappia quali pacchetti
124 sono disponibili. Lo si fa con <tt>apt-get update</>. Ad esempio,
129 Get http://ftp.de.debian.org/debian-non-US/ stable/binary-i386/ Packages
130 Get http://llug.sep.bnl.gov/debian/ testing/contrib Packages
131 Reading Package Lists... Done
132 Building Dependency Tree... Done
136 Dopo aver aggiornato l'elenco si possono usare molti comandi:
139 Upgrade tenterà di fare un aggiornamento indolore del sistema completo,
140 senza installare nuovi pacchetti o rimuoverne di esistenti, e senza
141 aggiornare un pacchetto che possa rovinarne altri. Upgrade farà un elenco
142 di tutti i pacchetti che non avrà potuto aggiornare, cosa che in genere
143 significa che questi dipendono da nuovi pacchetti o vanno in conflitto
144 con altri. Per forzare la loro installazione si può usare
145 <prgn>dselect</> o <tt>apt-get install</>.
148 Install viene usato per installare i singoli pacchetti dando il loro nome.
149 Il pacchetto viene automaticamente scaricato ed installato, cosa molto utile
150 se già se ne conosce il nome e non si vuole entrare in grafica per
151 selezionarlo. Al comando si possono passare anche più pacchetti, che saranno
152 tutti scaricati. L'installazione automatica cerca di risolvere i problemi
153 di dipendenze con gli altri pacchetti elencati, stampa un riassunto e
154 chiede conferma se si devono modificare altri pacchetti che non siano quelli
155 sulla linea di comando.
157 <tag>dist-upgrade<item>
158 Dist-upgrade fa un aggiornamento completo, progettato in modo da rendere
159 semplici gli aggiornamenti tra versioni di Debian. Usa un algoritmo
160 sofisticato per determinare il miglior insieme di pacchetti da installare,
161 aggiornare e rimuovere per arrivare alla versione più aggiornata
162 del sistema possibile. In alcune situazioni può essere vantaggioso usare
163 dist-upgrade invece che sprecare tempo a risolvere manualmente le
164 dipendenze con <prgn>dselect</>. Una volta completato dist-upgrade, si può
165 usare <prgn>dselect</> per installare eventuali pacchetti che sono stati
169 È importante controllare attentamente cosa intende fare dist-upgrade,
170 dato che le sue decisioni a volte possono essere abbastanza sorprendenti.
174 <prgn>apt-get</> ha diverse opzioni a linea di comando, che vengono
175 documentate dettagliatamente nella sua pagina man,
176 <manref name="apt-get" section="8">. L'opzione più utile è
177 <tt>-d</>, che non installa i file scaricati: se il sistema deve
178 scaricare un gran numero di pacchetti, non è bene farglieli installare
179 subito, in caso dovesse andare male qualcosa. Dopo aver usato <tt>-d</>,
180 gli archivi scaricati possono essere installati semplicemente dando di
181 nuovo lo stesso comando senza l'opzione <tt>-d</>.
186 <!-- ===================================================================== -->
189 Il metodo APT di <prgn>dselect</> fornisce tutte le funzionalità di APT
190 all'interno dell'interfaccia grafica di selezione dei pacchetti
191 <prgn>dselect</>. <prgn>dselect</> viene usato per selezionare i pacchetti
192 da installare o rimuovere, ed APT li installa.
195 Per abilitare il metodo APT dovete selezionare [A]ccess in <prgn>dselect</>
196 e scegliere il metodo APT; vi verrà chiesto un insieme di fonti
197 (<em>Sources</>), cioè di posti da cui scaricare gli archivi.
198 Tali fonti possono essere siti Internet remoti, mirror locali di Debian
199 o CDROM; ciascuna di esse può fornire una parte dell'archivio Debian,
200 ed APT le combinerà insieme in un set completo di pacchetti. Se avete un
201 CDROM è una buona idea indicare quello per primo, e poi i mirror, in modo
202 da avere accesso alle ultime versioni; APT userà in questo modo automaticamente
203 i pacchetti sul CDROM prima di scaricarli da Internet.
207 Set up a list of distribution source locations
209 Please give the base URL of the debian distribution.
210 The access schemes I know about are: http file
214 ftp://ftp.debian.org/debian,
215 http://ftp.de.debian.org/debian,
218 URL [http://llug.sep.bnl.gov/debian]:
222 La configurazione delle fonti inizia chiedendo la base dell'archivio Debian,
223 propone come default un mirror HTTP, e poi chiede la distribuzione
228 Please give the distribution tag to get or a path to the
229 package file ending in a /. The distribution
230 tags are typically something like: stable unstable testing non-US
232 Distribution [stable]:
236 La distribuzione (``distribution'') fa riferimento alla versione Debian
237 dell'archivio: <em>stable</> è l'ultima rilasciata, ed <em>unstable</>
238 è quella di sviluppo. <em>non-US</> è disponibile solo su alcuni mirror,
239 e contiene dei pacchetti in cui viene usata della tecnologia di criptazione
240 o altre cose che non possano essere esportate dagli Stati Uniti; importare
241 questi pacchetti negli US è però legale.
245 Please give the components to get
246 The components are typically something like: main contrib non-free
248 Components [main contrib non-free]:
252 L'elenco dei componenti (``components'') si riferisce alla lista di
253 sotto-distribuzioni da scaricare. Ciascuna distribuzione viene divisa in
254 base al copyright del software: la main contiene pacchetti la cui licenza
255 soddisfa le DFSG, mentre contrib e non-free contengono software che ha
256 diverse restrizioni sull'uso e sulla distribuzione.
259 Si possono inserire un qualsiasi numero di fonti, e lo script di
260 configurazione continuerà a chiedere fino a che abbiate specificato tutti gli
264 Prima di cominciare ad usare <prgn>dselect</> è necessario aggiornare
265 l'elenco dei pacchetti disponibili selezionando [U]pdate dal menù:
266 si tratta di un sovrainsieme di ciò che fa <tt>apt-get update</>,
267 che rende l'informazione scaricata disponibile a
268 <prgn>dselect</>. [U]pdate deve essere fatto anche se prima è stato dato
269 <tt>apt-get update</>.
272 Si può a questo punto continuare selezionando i pacchetti desiderati
273 usando [S]elect e poi installando con [I]nstall. Se si usa il metodo APT,
274 i comandi [C]onfig e [R]emove non hanno significato, dato che entrambe le
275 fasi sono contenute in [I]nstall.
278 Per default APT rimuoverà automaticamente i pacchetti che sono stati installati
279 con successo. Per modificare questo comportamento, si inserisca
280 <tt>Dselect::clean "prompt";</> in /etc/apt/apt.conf.
284 <!-- The Interfaces {{{ -->
285 <!-- ===================================================================== -->
289 Entrambi i metodi, <prgn>dselect</> APT ed <prgn>apt-get</>, condividono la
290 stessa interfaccia; si tratta di un sistema semplice che indica in genere
291 cosa sta per fare, e poi lo fa.
293 Il metodo <prgn>dselect</> è in realtà un insieme di script di wrapper ad
294 <prgn>apt-get</>. Il metodo fornisce delle funzionalità maggiori del
295 solo <prgn>apt-get</>.
297 Dopo la stampa di un riassunto delle operazioni che saranno fatte,
298 APT stampa dei messaggi informativi sullo stato del sistema, in modo che
299 possiate avere davanti agli occhi a quale punto dell'operazione si trova,
300 e quanto ancora si deve aspettare.
302 <!-- ===================================================================== -->
306 Prima di ciascuna operazione, eccetto l'aggiornamento della lista, APT
307 compie alcune operazioni per prepararsi, oltre a dei controlli dello
308 stato del sistema. In qualsiasi momento le stesse operazioni possono essere
309 fatte con <tt>apt-get check</>
313 Reading Package Lists... Done
314 Building Dependancy Tree... Done
318 La prima cosa che fa è leggere tutti i file dei pacchetti in memoria,
319 usando uno schema di caching in modo da rendere la stessa operazione più
320 veloce la seconda volta che la si fa. Se alcuni dei file dei pacchetti
321 non vengono trovati, sono ignorati e viene stampato un avvertimento
322 all'uscita di apt-get.
325 L'operazione finale consiste in un'analisi dettagliata delle
326 dipendenze del sistema: viene controllato che tutte le dipendenze dei
327 singoli pacchetti installati o non scompattati siano soddisfatte.
328 Se vengono individuati dei problemi, viene stampato un resoconto,
329 ed <prgn>apt-get</> esce senza eseguire alcuna operazione.
334 Reading Package Lists... Done
335 Building Dependancy Tree... Done
336 You might want to run apt-get -f install' to correct these.
337 Sorry, but the following packages have unmet dependencies:
338 9fonts: Depends: xlib6g but it is not installed
339 uucp: Depends: mailx but it is not installed
340 blast: Depends: xlib6g (>= 3.3-5) but it is not installed
341 adduser: Depends: perl-base but it is not installed
342 aumix: Depends: libgpmg1 but it is not installed
343 debiandoc-sgml: Depends: sgml-base but it is not installed
344 bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed
345 cthugha: Depends: svgalibg1 but it is not installed
346 Depends: xlib6g (>= 3.3-5) but it is not installed
347 libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1)
351 In questo esempio il sistema ha molti problemi, tra cui uno piuttosto serio
352 con la libreadlineg2. Per ciascun pacchetto che ha dipendenze non soddisfatte,
353 viene stampata una linea che indica il pacchetto che crea il problema e
354 quali problemi ci sono. Viene inclusa inoltre una breve spiegazione
355 del perché il pacchetto ha un problema di dipendenze.
358 Ci sono due modi in cui un sistema possa arrivare in uno stato problematico
359 di questo genere: il primo è causato dal fatto che <prgn>dpkg</> possa
360 mancare alcune relazioni sottili tra pacchetti durante un aggiornamento
361 del sistema<footnote>APT considera comunque tutte le dipendenze note,
362 e cerca di prevenire problemi ai pacchetti</footnote>; il secondo è possibile
363 se l'installazione di un pacchetto fallisce, ed in questo caso è possibile
364 che un pacchetto venga scompattato senza che tutti quelli da cui dipende
365 siano stati installati.
368 La seconda possibilità è meno seria della prima, dato che APT gestisce
369 l'ordine di installazione dei pacchetti; in entrambi i casi l'opzione
370 <tt>-f</> di <prgn>apt-get</> gli farà trovare una soluzione e lo farà
371 continuare. Il metodo APT di <prgn>dselect</> comprende sempre l'opzione
372 <tt>-f</> per permettere di configurare facilmente anche i pacchetti con
376 Se viene usata però l'opzione <tt>-f</> per correggere un sistema in uno
377 stato molto problematico, è possibile che anche con l'opzione il programma
378 fallisca, subito o durante la sequenza di installazione. In entrambi i casi
379 è necessario usare dpkg a mano (probabilmente usando delle opzioni
380 di forzatura) per correggere quanto basta per poter fare continuare APT.
383 <!-- ===================================================================== -->
384 <sect>Il resoconto sullo stato
387 Prima di procedere, <prgn>apt-get</> presenterà un resoconto delle operazioni
388 che sta per fare. In genere tale resoconto varierà con il tipo di operazioni
389 da fare, ma ci sono alcuni elementi comuni: in tutti i casi gli elenchi
390 dipendono dallo stato finale delle cose, e tengono conto dell'opzione
391 <tt>-f</> e di altre attività rilevanti per il comando da eseguire.
393 <sect1>L'elenco dei pacchetti Extra
396 The following extra packages will be installed:
397 libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl
398 mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base
399 bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy
400 squake pgp-i python-base debmake ldso perl libreadlineg2
405 L'elenco dei pacchetti Extra mostra tutti i pacchetti che verranno installati
406 o aggiornati oltre a quelli indicati sulla linea di comando. Viene generato
407 solo per il comando <tt>install</>. I pacchetti elencati sono spesso il
408 risultato di un'operazione di auto installazione (Auto Install).
411 <sect1>I pacchetti da rimuovere
414 The following packages will be REMOVED:
415 xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix
416 xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel
417 xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid
422 L'elenco dei pacchetti da rimuovere (Remove) indica tutti i pacchetti che
423 verranno rimossi dal sistema. Può essere mostrato per una qualsiasi delle
424 operazioni, e deve sempre essere esaminato attentamente per assicurarsi
425 che non venga eliminato qualcosa di importante. Con l'opzione <tt>-f</>
426 è particolarmente probabile che vengano eliminati dei pacchetti, ed in questo
427 caso va fatta estrema attenzione. La lista può contenere dei pacchetti
428 che verranno rimossi perché sono già rimossi parzialmente, forse a causa
429 di un'installazione non terminata correttamente.
432 <sect1>L'elenco dei nuovi pacchetti installati
435 The following NEW packages will installed:
436 zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base
440 L'elenco dei nuovi pacchetti installati (New) è semplicemente un appunto
441 su quello che accadrà. I pacchetti nell'elenco non sono al momento installati
442 nel sistema, ma lo saranno alla fine delle operazioni di APT.
445 <sect1>L'elenco dei pacchetti trattenuti
448 The following packages have been kept back
449 compface man-db tetex-base msql libpaper svgalib1
450 gs snmp arena lynx xpat2 groff xscreensaver
454 In ogni caso in cui il sistema viene aggiornato nel suo insieme, c'è la
455 possibilità che non possano venire installate nuove versioni di alcuni
456 pacchetti, dato che potrebbero richiedere l'installazione di pacchetti non
457 presenti nel sistema, o entrare in conflitto con altri già presenti.
458 In questo caso, il pacchetto viene elencato nella lista di quelli
459 trattenuti (Kept Back). Il miglior modo per convincere i pacchetti
460 elencati in questa lista è di installarli con <tt>apt-get install</> o
461 usare <prgn>dselect</> per risolvere i problemi.
464 <sect1>Messaggi di attenzione sui pacchetti trattenuti
467 The following held packages will be changed:
472 A volte si può richiedere ad APT di installare un pacchetto
473 che è stato trattenuto; in questi casi viene stampato un messaggio di
474 attenzione, che avverte che il pacchetto verrà modificato. Questo
475 dovrebbe accadere solo durante operazioni di dist-upgrade o di install.
478 <sect1>Resoconto finale
480 Infine, APT stamperà un riassunto di tutte le modifiche che accadranno.
484 206 packages upgraded, 8 newly installed, 23 to remove and 51 not upgraded.
485 12 packages not fully installed or removed.
486 Need to get 65.7M/66.7M of archives. After unpacking 26.5M will be used.
490 La prima linea del riassunto è semplicemente una versione ridotta di tutte
491 le liste, ed include il numero di aggiornamenti -- cioè dei pacchetti
492 già installati per cui sono disponibili nuove versioni. La seconda
493 linea indica il numero di pacchetti con problemi di configurazione,
494 probabilmente in conseguenza di un'installazione non andata a buon fine.
495 La linea finale indica i requisiti di spazio dell'installazione: i primi
496 due numeri indicano rispettivamente il numero di byte che devono
497 essere trasferiti da posizioni remote, ed il secondo la dimensione totale
498 di tutti gli archivi necessari per l'installazione. Il numero successivo
499 indica la differenza in dimensione tra i pacchetti già installati
500 e quelli che lo saranno, ed è approssimativamente equivalente allo spazio
501 richiesto in /usr dopo l'installazione. Se si stanno rimuovendo dei
502 pacchetti, il valore può indicare lo spazio che verrà liberato.
505 Si possono generare altri resoconti usando l'opzione -u per mostrare
506 i pacchetti da aggiornare, ma sono simili all'esempio precedente.
509 <!-- ===================================================================== -->
510 <sect>La visualizzazione dello stato
512 Durante il download degli archivi e dei file dei pacchetti, APT
513 stampa una serie di messaggi di stato.
518 Get:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages
519 Get:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages
520 Hit http://llug.sep.bnl.gov/debian/ testing/main Packages
521 Get:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages
522 Get:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages
523 11% [5 testing/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s
527 Le linee che cominciano con <em>Get</> vengono stampate quando APT inizia
528 a scaricare un file, e l'ultima linea indica il progresso dell'operazione.
529 Il primo valore in percentuale indica la percentuale totale di tutti i file;
530 dato che la dimensione dei file Package non è nota, purtroppo a volte
531 <tt>apt-get update</> fa una stima poco accurata.
534 La sezione successiva della linea di stato viene ripetuta una volta per
535 ciascuna fase del download, ed indica l'operazione in corso, insieme
536 ad alcune informazioni utili su cosa stia accadendo. A volte questa
537 sezione contiene solamente <em>Forking</>, che significa che il sistema
538 operativo sta caricando il modulo. La prima parola dopo la parentesi quadra
539 aperta è il nome breve dell'oggetto che si sta scaricando, che per gli archivi
540 è il nome del pacchetto.
543 All'interno delle virgolette c'è una stringa informativa, che indica il
544 progresso della fase di negoziazione del download. Tipicamente comincia con
545 <em>Connecting</>, procede con <em>Waiting for file</> e poi con
546 <em>Downloading</> o <em>Resuming</>. Il valore finale è il numero di byte
547 che sono stati scaricati dal sito remoto: una volta cominciato il
548 download viene rappresentato come <tt>102/10.2k</>, che indica che
549 sono stati scaricati 102 byte di 10.2 kilobyte. La dimensione totale
550 viene sempre espressa in notazione a quattro cifre, per risparmiare
551 spazio. Dopo la dimensione viene indicato un indicatore
552 progressivo della percentuale del file. Il penultimo elemento è la velocità
553 istantanea media, che viene aggiornata ogni 5 secondi, e riflette la
554 velocità di trasferimento dei dati in quel periodo. Infine, viene
555 visualizzato il tempo stimato per il trasferimento, che viene aggiornato
556 periodicamente e riflette il tempo necessario per completare tutte le
557 operazioni alla velocità di trasferimento mostrata.
560 La visualizzazione dello stato viene aggiornata ogni mezzo secondo per
561 fornire un feedback costante del processo di download, e le linee Get
562 scorrono indietro quando viene cominciato il download di un nuovo file.
563 Dato che la visualizzazione dello stato viene costantemente
564 aggiornata, non è adatta per essere registrata in un file; per non
565 visualizzarla si può usare l'opzione <tt>-q</>.
568 <!-- ===================================================================== -->
572 APT usa <prgn>dpkg</> per installare gli archivi e passerà all'interfaccia
573 <prgn>dpkg</> una volta finito il download.
574 <prgn>dpkg</> porrà anche alcune domande durante la manipolazione dei
575 pacchetti, ed i pacchetti stessi
576 potranno farne altre. Prima di ciascuna domanda viene
577 proposta una descrizione di quello che sta per chiedere, e le domande
578 sono troppo diverse per poter essere discusse in maniera completa in questa