Guida dell'utente di APT

                         Guida dell'utente di APT
                         ------------------------

                     Jason Gunthorpe <jgg@debian.org>

          Traduzione di Eugenia Franzoni <eugenia@linuxcare.com>

          $Id: guide.it.sgml,v 1.2 2001/02/20 07:03:17 jgg Exp $


-------------------------------------------------------------------------------


Abstract
--------

     Guida per l'uso del gestore di pacchetti APT.


Copyright Notice
----------------

     Copyright (C) Jason Gunthorpe, 1998.

     Ed.  italiana Copyright (C) Eugenia Franzoni, 2000.

     "APT" e questo documento sono software libero, e li si pu□     ridistribuire e/o modificare secondo i termini della Licenza Pubblica
     Generica GNU (GPL), pubblicata dalla Free Software Foundation, nella
     versione 2 o (se preferite) qualsiasi versione successiva.

     "APT" and this document are free software; you can redistribute them
     and/or modify them under the terms of the GNU General Public License
     as published by the Free Software Foundation; either version 2 of the
     License, or (at your option) any later version.

     Per ulteriori dettagli sui sistemi GNU/Linux si veda il testo completo
     della licenza nel file /usr/doc/copyright/GPL.


-------------------------------------------------------------------------------


Contents
--------

     1.        Descrizione generale
     1.1.      Anatomia del sistema di pacchettizzazione

     2.        apt-get

     3.        DSelect

     4.        L'interfaccia
     4.1.      Avvio
     4.2.      Il resoconto sullo stato
     4.3.      La visualizzazione dello stato
     4.4.      Dpkg


-------------------------------------------------------------------------------


1. Descrizione generale
-----------------------

     Il pacchetto APT al momento contiene due sezioni, il metodo APT
     `dselect' e l'interfaccia utente a linea di comando `apt-get';
     entrambi danno modo di installare e rimuovere pacchetti, e di
     scaricarne altri da Internet.


1.1. Anatomia del sistema di pacchettizzazione
----------------------------------------------

     Il sistema di pacchettizzazione di Debian contiene un gran numero di
     informazioni associate a ciascun pacchetto, per assicurarsi che si
     integri facilmente ed in maniera pulita nel sistema; la pi□importante
     di esse □il sistema di dipendenze.

     Il sistema di dipendenze permette ai singoli programmi di fare uso
     degli elementi condivisi del sistema, quali le librerie; per ridurre
     il numero di elementi che l'utente medio debba installare, le porzioni
     di programmi che non vengono usate spesso vengono poste in pacchetti
     separati.  Inoltre, □possibile avere pi□di una scelta per cose quali
     i programmi di posta elettronica, i server X e cos□via.

     Il primo passo per capire il sistema di dipendenze □la comprensione
     del concetto di dipendenza semplice: un pacchetto richiede che un
     altro sia installato insieme ad esso per poter funzionare.

     Ad esempio, mail-crypt □un'estensione di emacs che aiuta a criptare
     le mail con PGP.  Se PGP non □installato, mail-crypt □inutile,
     quindi mail-crypt ha una dipendenza semplice da PGP.  Inoltre, dato
     che si tratta di un'estensione di emacs, mail-crypt dipende anche da
     emacs, senza il quale □totalmente inutile.

     L'altro tipo di dipendenza importante da capire □la dipendenza di
     conflitto; con questa, un pacchetto che venga installato insieme ad un
     altro pacchetto non funziona, e si hanno seri problemi al sistema.
     Come esempio, si consideri un programma di trasporto della posta,
     quale sendmail, exim o qmail: non □possibile averne due
     contemporaneamente, perch□entrambi hanno bisogno di restare in
     ascolto sulla stessa porta di rete per ricevere la posta.  Tentare di
     installarne due danneggerebbe seriamente il sistema, quindi ciascun
     programma di trasporto della posta ha una dipendenza di conflitto con
     tutti gli altri.

     Come ulteriore complicazione, c'□la possibilit□che un pacchetto
     voglia prendere il posto di un altro; ad esempio, exim e sendmail per
     molte cose sono identici, dato che entrambi gestiscono la posta e
     comprendono un'interfaccia comune, quindi il sistema di
     pacchettizzazione deve dichiarare che sono entrambi agenti di
     trasporto della posta, e che gli altri pacchetti a cui serve uno dei
     due devono dipendere da un pacchetto fittizio
     agente-di-trasporto-della-posta.  Quando si modificano a mano i
     pacchetti, questo pu□portare a moltissima confusione.

     In ciascun momento una singola dipendenza pu□essere soddisfatta o
     meno dai pacchetti gi□installati; APT cerca di risolvere i problemi
     di dipendenze con un buon numero di algoritmi automatici, che aiutano
     a selezionare i pacchetti da installare.


-------------------------------------------------------------------------------


2. apt-get
----------

     `apt-get' fornisce un modo semplice di installare i pacchetti dalla
     linea di comando.  Diversamente da `dpkg', `apt-get' non capisce i
     nomi dei file .deb, ma utilizza il vero nome dei pacchetti, e pu□     installare archivi .deb solo da una fonte.

     La prima [1] cosa da fare prima di usare `apt-get' □impostare
     l'elenco dei pacchetti dalle fonti in modo che il programma sappia
     quali pacchetti sono disponibili.  Lo si fa con `apt-get update'.  Ad
     esempio,

# apt-get update
Get http://ftp.de.debian.org/debian-non-US/ stable/binary-i386/ Packages
Get http://llug.sep.bnl.gov/debian/ frozen/contrib Packages
Reading Package Lists... Done
Building Dependency Tree... Done

     Dopo aver aggiornato l'elenco si possono usare molti comandi:

     upgrade
          Upgrade tenter□di fare un aggiornamento indolore del sistema
          completo, senza installare nuovi pacchetti o rimuoverne di
          esistenti, e senza aggiornare un pacchetto che possa rovinarne
          altri.  Upgrade far□un elenco di tutti i pacchetti che non avr□          potuto aggiornare, cosa che in genere significa che questi
          dipendono da nuovi pacchetti o vanno in conflitto con altri.  Per
          forzare la loro installazione si pu□usare `dselect' o `apt-get
          install'.

     install
          Install viene usato per installare i singoli pacchetti dando il
          loro nome.  Il pacchetto viene automaticamente scaricato ed
          installato, cosa molto utile se gi□se ne conosce il nome e non
          si vuole entrare in grafica per selezionarlo.  Al comando si
          possono passare anche pi□pacchetti, che saranno tutti scaricati.
          L'installazione automatica cerca di risolvere i problemi di
          dipendenze con gli altri pacchetti elencati, stampa un riassunto
          e chiede conferma se si devono modificare altri pacchetti che non
          siano quelli sulla linea di comando.

     dist-upgrade
          Dist-upgrade fa un aggiornamento completo, progettato in modo da
          rendere semplici gli aggiornamenti tra versioni di Debian.  Usa
          un algoritmo sofisticato per determinare il miglior insieme di
          pacchetti da installare, aggiornare e rimuovere per arrivare alla
          versione pi□aggiornata del sistema possibile.  In alcune
          situazioni pu□essere vantaggioso usare dist-upgrade invece che
          sprecare tempo a risolvere manualmente le dipendenze con
          `dselect'.  Una volta completato dist-upgrade, si pu□usare
          `dselect' per installare eventuali pacchetti che sono stati
          tralasciati.

          □importante controllare attentamente cosa intende fare
          dist-upgrade, dato che le sue decisioni a volte possono essere
          abbastanza sorprendenti.

     `apt-get' ha diverse opzioni a linea di comando, che vengono
     documentate dettagliatamente nella sua pagina man, apt-get(8).
     L'opzione pi□utile □`-d', che non installa i file scaricati: se il
     sistema deve scaricare un gran numero di pacchetti, non □bene
     farglieli installare subito, in caso dovesse andare male qualcosa.
     Dopo aver usato `-d', gli archivi scaricati possono essere installati
     semplicemente dando di nuovo lo stesso comando senza l'opzione `-d'.

[1]  Se state usando un proxy server http, dovete prima ancora impostare la
     variabile d'ambiente http_proxy; vedere sources.list(5). 


-------------------------------------------------------------------------------


3. DSelect
----------

     Il metodo APT di `dselect' fornisce tutte le funzionalit□di APT
     all'interno dell'interfaccia grafica di selezione dei pacchetti
     `dselect'.  `dselect' viene usato per selezionare i pacchetti da
     installare o rimuovere, ed APT li installa.

     Per abilitare il metodo APT dovete selezionare [A]ccess in `dselect' e
     scegliere il metodo APT; vi verr□chiesto un insieme di fonti
     (_Sources_), cio□di posti da cui scaricare gli archivi.  Tali fonti
     possono essere siti Internet remoti, mirror locali di Debian o CDROM;
     ciascuna di esse pu□fornire una parte dell'archivio Debian, ed APT le
     combiner□insieme in un set completo di pacchetti.  Se avete un CDROM
     □una buona idea indicare quello per primo, e poi i mirror, in modo da
     avere accesso alle ultime versioni; APT user□in questo modo
     automaticamente i pacchetti sul CDROM prima di scaricarli da Internet.

             Set up a list of distribution source locations
          
           Please give the base URL of the debian distribution.
           The access schemes I know about are: http file
          
           For example:
                file:/mnt/debian,
                ftp://ftp.debian.org/debian,
                http://ftp.de.debian.org/debian,
          
          
           URL [http://llug.sep.bnl.gov/debian]:

     La configurazione delle fonti inizia chiedendo la base dell'archivio
     Debian, propone come default un mirror HTTP, e poi chiede la
     distribuzione da scaricare.

           Please give the distribution tag to get or a path to the
           package file ending in a /. The distribution
           tags are typically something like: stable unstable frozen non-US
          
           Distribution [stable]:

     La distribuzione (``distribution'') fa riferimento alla versione
     Debian dell'archivio: _stable_ □l'ultima rilasciata, ed _unstable_ □     quella di sviluppo.  _non-US_ □disponibile solo su alcuni mirror, e
     contiene dei pacchetti in cui viene usata della tecnologia di
     criptazione o altre cose che non possano essere esportate dagli Stati
     Uniti; importare questi pacchetti negli US □per□legale.

           Please give the components to get
           The components are typically something like: main contrib non-free
          
           Components [main contrib non-free]:

     L'elenco dei componenti (``components'') si riferisce alla lista di
     sotto-distribuzioni da scaricare.  Ciascuna distribuzione viene divisa
     in base al copyright del software: la main contiene pacchetti la cui
     licenza soddisfa le DFSG, mentre contrib e non-free contengono
     software che ha diverse restrizioni sull'uso e sulla distribuzione.

     Si possono inserire un qualsiasi numero di fonti, e lo script di
     configurazione continuer□a chiedere fino a che abbiate specificato
     tutti gli elementi che volete.

     Prima di cominciare ad usare `dselect' □necessario aggiornare
     l'elenco dei pacchetti disponibili selezionando [U]pdate dal men□ si
     tratta di un sovrainsieme di ci□che fa `apt-get update', che rende
     l'informazione scaricata disponibile a `dselect'.  [U]pdate deve
     essere fatto anche se prima □stato dato `apt-get update'.

     Si pu□a questo punto continuare selezionando i pacchetti desiderati
     usando [S]elect e poi installando con [I]nstall.  Se si usa il metodo
     APT, i comandi [C]onfig e [R]emove non hanno significato, dato che
     entrambe le fasi sono contenute in [I]nstall.

     Per default APT rimuover□automaticamente i pacchetti che sono stati
     installati con successo.  Per modificare questo comportamento, si
     inserisca `Dselect::clean "prompt";' in /etc/apt/apt.conf.


-------------------------------------------------------------------------------


4. L'interfaccia
----------------

     Entrambi i metodi, `dselect' APT ed `apt-get', condividono la stessa
     interfaccia; si tratta di un sistema semplice che indica in genere
     cosa sta per fare, e poi lo fa.  [1] Dopo la stampa di un riassunto
     delle operazioni che saranno fatte, APT stampa dei messaggi
     informativi sullo stato del sistema, in modo che possiate avere
     davanti agli occhi a quale punto dell'operazione si trova, e quanto
     ancora si deve aspettare.

[1]  Il metodo `dselect' □in realt□un insieme di script di wrapper ad
     `apt-get'. Il metodo fornisce delle funzionalit□maggiori del solo
     `apt-get'. 


4.1. Avvio
----------

     Prima di ciascuna operazione, eccetto l'aggiornamento della lista, APT
     compie alcune operazioni per prepararsi, oltre a dei controlli dello
     stato del sistema.  In qualsiasi momento le stesse operazioni possono
     essere fatte con `apt-get check'

          # apt-get check
          Reading Package Lists... Done
          Building Dependancy Tree... Done

     La prima cosa che fa □leggere tutti i file dei pacchetti in memoria,
     usando uno schema di caching in modo da rendere la stessa operazione
     pi□veloce la seconda volta che la si fa.  Se alcuni dei file dei
     pacchetti non vengono trovati, sono ignorati e viene stampato un
     avvertimento all'uscita di apt-get.

     L'operazione finale consiste in un'analisi dettagliata delle
     dipendenze del sistema: viene controllato che tutte le dipendenze dei
     singoli pacchetti installati o non scompattati siano soddisfatte.  Se
     vengono individuati dei problemi, viene stampato un resoconto, ed
     `apt-get' esce senza eseguire alcuna operazione.

          # apt-get check
          Reading Package Lists... Done
          Building Dependancy Tree... Done
          You might want to run apt-get -f install' to correct these.
          Sorry, but the following packages have unmet dependencies:
            9fonts: Depends: xlib6g but it is not installed
            uucp: Depends: mailx but it is not installed
            blast: Depends: xlib6g (>= 3.3-5) but it is not installed
            adduser: Depends: perl-base but it is not installed
            aumix: Depends: libgpmg1 but it is not installed
            debiandoc-sgml: Depends: sgml-base but it is not installed
            bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed
            cthugha: Depends: svgalibg1 but it is not installed
                     Depends: xlib6g (>= 3.3-5) but it is not installed
            libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1)

     In questo esempio il sistema ha molti problemi, tra cui uno piuttosto
     serio con la libreadlineg2.  Per ciascun pacchetto che ha dipendenze
     non soddisfatte, viene stampata una linea che indica il pacchetto che
     crea il problema e quali problemi ci sono.  Viene inclusa inoltre una
     breve spiegazione del perch□il pacchetto ha un problema di
     dipendenze.

     Ci sono due modi in cui un sistema possa arrivare in uno stato
     problematico di questo genere: il primo □causato dal fatto che `dpkg'
     possa mancare alcune relazioni sottili tra pacchetti durante un
     aggiornamento del sistema[1]; il secondo □possibile se
     l'installazione di un pacchetto fallisce, ed in questo caso □     possibile che un pacchetto venga scompattato senza che tutti quelli da
     cui dipende siano stati installati.

     La seconda possibilit□□meno seria della prima, dato che APT gestisce
     l'ordine di installazione dei pacchetti; in entrambi i casi l'opzione
     `-f' di `apt-get' gli far□trovare una soluzione e lo far□continuare.
     Il metodo APT di `dselect' comprende sempre l'opzione `-f' per
     permettere di configurare facilmente anche i pacchetti con script
     errati.

     Se viene usata per□l'opzione `-f' per correggere un sistema in uno
     stato molto problematico, □possibile che anche con l'opzione il
     programma fallisca, subito o durante la sequenza di installazione.  In
     entrambi i casi □necessario usare dpkg a mano (probabilmente usando
     delle opzioni di forzatura) per correggere quanto basta per poter fare
     continuare APT.

[1]  APT considera comunque tutte le dipendenze note, e cerca di prevenire
     problemi ai pacchetti 


4.2. Il resoconto sullo stato
-----------------------------

     Prima di procedere, `apt-get' presenter□un resoconto delle operazioni
     che sta per fare.  In genere tale resoconto varier□con il tipo di
     operazioni da fare, ma ci sono alcuni elementi comuni: in tutti i casi
     gli elenchi dipendono dallo stato finale delle cose, e tengono conto
     dell'opzione `-f' e di altre attivit□rilevanti per il comando da
     eseguire.

4.2.1. L'elenco dei pacchetti Extra
-----------------------------------

          The following extra packages will be installed:
            libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl
            mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base
            bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy
            squake pgp-i python-base debmake ldso perl libreadlineg2
            ssh

     L'elenco dei pacchetti Extra mostra tutti i pacchetti che verranno
     installati o aggiornati oltre a quelli indicati sulla linea di
     comando.  Viene generato solo per il comando `install'.  I pacchetti
     elencati sono spesso il risultato di un'operazione di auto
     installazione (Auto Install).

4.2.2. I pacchetti da rimuovere
-------------------------------

          The following packages will be REMOVED:
            xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix
            xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel
            xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid
            nas xpilot xfig

     L'elenco dei pacchetti da rimuovere (Remove) indica tutti i pacchetti
     che verranno rimossi dal sistema.  Pu□essere mostrato per una
     qualsiasi delle operazioni, e deve sempre essere esaminato
     attentamente per assicurarsi che non venga eliminato qualcosa di
     importante.  Con l'opzione `-f' □particolarmente probabile che
     vengano eliminati dei pacchetti, ed in questo caso va fatta estrema
     attenzione.  La lista pu□contenere dei pacchetti che verranno rimossi
     perch□sono gi□rimossi parzialmente, forse a causa di
     un'installazione non terminata correttamente.

4.2.3. L'elenco dei nuovi pacchetti installati
----------------------------------------------

          The following NEW packages will installed:
            zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base

     L'elenco dei nuovi pacchetti installati (New) □semplicemente un
     appunto su quello che accadr□  I pacchetti nell'elenco non sono al
     momento installati nel sistema, ma lo saranno alla fine delle
     operazioni di APT.

4.2.4. L'elenco dei pacchetti trattenuti
----------------------------------------

          The following packages have been kept back
            compface man-db tetex-base msql libpaper svgalib1
            gs snmp arena lynx xpat2 groff xscreensaver

     In ogni caso in cui il sistema viene aggiornato nel suo insieme, c'□     la possibilit□che non possano venire installate nuove versioni di
     alcuni pacchetti, dato che potrebbero richiedere l'installazione di
     pacchetti non presenti nel sistema, o entrare in conflitto con altri
     gi□presenti.  In questo caso, il pacchetto viene elencato nella lista
     di quelli trattenuti (Kept Back).  Il miglior modo per convincere i
     pacchetti elencati in questa lista □di installarli con `apt-get
     install' o usare `dselect' per risolvere i problemi.

4.2.5. Messaggi di attenzione sui pacchetti trattenuti
------------------------------------------------------

          The following held packages will be changed:
            cvs

     A volte si pu□richiedere ad APT di installare un pacchetto che □     stato trattenuto; in questi casi viene stampato un messaggio di
     attenzione, che avverte che il pacchetto verr□modificato.  Questo
     dovrebbe accadere solo durante operazioni di dist-upgrade o di
     install.

4.2.6. Resoconto finale
-----------------------

     Infine, APT stamper□un riassunto di tutte le modifiche che
     accadranno.

206 packages upgraded, 8 newly installed, 23 to remove and 51 not upgraded.
12 packages not fully installed or removed.
Need to get 65.7M/66.7M of archives. After unpacking 26.5M will be used.

     La prima linea del riassunto □semplicemente una versione ridotta di
     tutte le liste, ed include il numero di aggiornamenti -- cio□dei
     pacchetti gi□installati per cui sono disponibili nuove versioni.  La
     seconda linea indica il numero di pacchetti con problemi di
     configurazione, probabilmente in conseguenza di un'installazione non
     andata a buon fine.  La linea finale indica i requisiti di spazio
     dell'installazione: i primi due numeri indicano rispettivamente il
     numero di byte che devono essere trasferiti da posizioni remote, ed il
     secondo la dimensione totale di tutti gli archivi necessari per
     l'installazione.  Il numero successivo indica la differenza in
     dimensione tra i pacchetti gi□installati e quelli che lo saranno, ed
     □approssimativamente equivalente allo spazio richiesto in /usr dopo
     l'installazione.  Se si stanno rimuovendo dei pacchetti, il valore pu□     indicare lo spazio che verr□liberato.

     Si possono generare altri resoconti usando l'opzione -u per mostrare i
     pacchetti da aggiornare, ma sono simili all'esempio precedente.


4.3. La visualizzazione dello stato
-----------------------------------

     Durante il download degli archivi e dei file dei pacchetti, APT stampa
     una serie di messaggi di stato.

# apt-get update
Get:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages
Get:2 http://llug.sep.bnl.gov/debian/ frozen/contrib Packages
Hit http://llug.sep.bnl.gov/debian/ frozen/main Packages
Get:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages
Get:5 http://llug.sep.bnl.gov/debian/ frozen/non-free Packages
11% [5 frozen/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s

     Le linee che cominciano con _Get_ vengono stampate quando APT inizia a
     scaricare un file, e l'ultima linea indica il progresso
     dell'operazione.  Il primo valore in percentuale indica la percentuale
     totale di tutti i file; dato che la dimensione dei file Package non □     nota, purtroppo a volte `apt-get update' fa una stima poco accurata.

     La sezione successiva della linea di stato viene ripetuta una volta
     per ciascuna fase del download, ed indica l'operazione in corso,
     insieme ad alcune informazioni utili su cosa stia accadendo.  A volte
     questa sezione contiene solamente _Forking_, che significa che il
     sistema operativo sta caricando il modulo.  La prima parola dopo la
     parentesi quadra aperta □il nome breve dell'oggetto che si sta
     scaricando, che per gli archivi □il nome del pacchetto.

     All'interno delle virgolette c'□una stringa informativa, che indica
     il progresso della fase di negoziazione del download.  Tipicamente
     comincia con _Connecting_, procede con _Waiting for file_ e poi con
     _Downloading_ o _Resuming_.  Il valore finale □il numero di byte che
     sono stati scaricati dal sito remoto: una volta cominciato il download
     viene rappresentato come `102/10.2k', che indica che sono stati
     scaricati 102 byte di 10.2 kilobyte.  La dimensione totale viene
     sempre espressa in notazione a quattro cifre, per risparmiare spazio.
     Dopo la dimensione viene indicato un indicatore progressivo della
     percentuale del file.  Il penultimo elemento □la velocit□istantanea
     media, che viene aggiornata ogni 5 secondi, e riflette la velocit□di
     trasferimento dei dati in quel periodo.  Infine, viene visualizzato il
     tempo stimato per il trasferimento, che viene aggiornato
     periodicamente e riflette il tempo necessario per completare tutte le
     operazioni alla velocit□di trasferimento mostrata.

     La visualizzazione dello stato viene aggiornata ogni mezzo secondo per
     fornire un feedback costante del processo di download, e le linee Get
     scorrono indietro quando viene cominciato il download di un nuovo
     file.  Dato che la visualizzazione dello stato viene costantemente
     aggiornata, non □adatta per essere registrata in un file; per non
     visualizzarla si pu□usare l'opzione `-q'.


4.4. Dpkg
---------

     APT usa `dpkg' per installare gli archivi e passer□all'interfaccia
     `dpkg' una volta finito il download.  `dpkg' porr□anche alcune
     domande durante la manipolazione dei pacchetti, ed i pacchetti stessi
     potranno farne altre.  Prima di ciascuna domanda viene proposta una
     descrizione di quello che sta per chiedere, e le domande sono troppo
     diverse per poter essere discusse in maniera completa in questa
     occasione.


-------------------------------------------------------------------------------


     Guida dell'utente di APT

     Jason Gunthorpe <jgg@debian.org>
     Traduzione di Eugenia Franzoni <eugenia@linuxcare.com>

     $Id: guide.it.sgml,v 1.2 2001/02/20 07:03:17 jgg Exp $