Product SiteDocumentation Site

Capitolo 6. Manutenzione ed aggiornamento: gli strumenti APT

6.1. Compilazione del file sources.list
6.1.1. Altri repository ufficiali disponibili
6.1.2. Risorse non ufficiali: apt-get.org e mentors.debian.net
6.2. I comandi aptitude e apt-get
6.2.1. Inizializzazione
6.2.2. Installazione e rimozione
6.2.3. Aggiornamento del sistema
6.2.4. Opzioni di configurazione
6.2.5. Gestire le priorità dei pacchetti
6.2.6. Lavorare con più distribuzioni
6.3. Il comando apt-cache
6.4. Frontend: aptitude, synaptic
6.4.1. aptitude
6.4.2. synaptic
6.5. Controllare l'autenticità dei pacchetti
6.6. Aggiornare da una distribuzione stabile alla successiva
6.6.1. Procedura raccomandata
6.6.2. Gestire i problemi dopo un aggiornamento
6.7. Mantenere un sistema sempre aggiornato
6.8. Aggiornamenti automatici
6.8.1. Configurare dpkg
6.8.2. Configurare APT
6.8.3. Configurare debconf
6.8.4. Gestire interazioni a riga di comando
6.8.5. La combinazione miracolosa
6.9. Ricercare pacchetti
Ciò che rende così popolare Debian tra gli amministratori è la facilità con cui il software può essere installato e la facilità con cui l'intero sistema può essere aggiornato. Questo vantaggio è dovuto in gran parte al programma APT, le cui caratteristiche sono state studiate con entusiasmo dagli amministratori di Falcot Corp.
APT è l'abbreviazione di Advanced Package Tool (Strumento avanzato per i pacchetti). Ciò che rende questo programma "avanzato" è il suo approccio ai pacchetti. Non li valuta singolarmente, ma li considera nel loro insieme e produce la migliore combinazione possibile di pacchetti in base a ciò che è disponibile e compatibile (secondo le dipendenze).
APT necessita di ricevere una "lista di sorgenti di pacchetti": nel file /etc/apt/sources.list vengono elencati i diversi repository (o "fonti") che pubblicano i pacchetti Debian. APT sarà quindi in grado di importare la lista dei pacchetti pubblicati da ciascuna di queste fonti. Questa operazione si ottiene scaricando i file Packages.gz o Packages.bz2 (in caso di una sorgente dei pacchetti binari) e i file Sources.gz o Sources.bz2 (in caso di una sorgente di pacchetti sorgente) e analizzandone il loro contenuto. Quando è già presente una vecchia copia di questi file, APT può aggiornarla scaricando solo le differenze (vedi riquadro SUGGERIMENTO Aggiornamento incrementale).

6.1. Compilazione del file sources.list

Ogni riga attiva del file /etc/apt/sources.list contiene la descrizione di una sorgente, formata di 3 parti separate da spazi.
Il primo campo indica il tipo di sorgente:
  • "deb" per i pacchetti binari,
  • "deb-src" per i pacchetti sorgente.
Il secondo campo fornisce l'URL di base della sorgente (in combinazione con i nomi dei file presenti nel file Packages.gz, deve costituire un URL completo e valido): questo può essere costituito da un mirror Debian o un qualsiasi altro insieme di archivi di pacchetto di una terza parte. L'URL può iniziare con file:// per indicare una fonte locale installata all'interno della gerarchia di file del sistema, con http:// per indicare una sorgente accessibile da un server web, o con ftp:// per una sorgente disponibile su un server FTP. L'URL può anche iniziare con cdrom:// per installazioni basate su CD-ROM, anche se ciò è meno frequente, in quanto sono sempre più comuni i metodi di installazione basati sulla rete.
La sintassi dell'ultimo campo dipende dal fatto che la sorgente corrisponda o meno ad un mirror Debian. Nel caso di un mirror Debian, viene indicato il nome della distribuzione scelta (stable, testing, unstable o il loro nome in codice attuale, vedere l'elenco nel riquadro COMUNITÀ Bruce Perens, leader controverso), successivamente le sezioni da abilitare (scelte tra main, contrib e non-free). In tutti gli altri casi, viene indicata semplicemente la sottodirectory della sorgente desiderata (spesso semplicemente "./" che indica l'assenza di una sottodirectory: i pacchetti si trovano direttamente all'URL specificato).
Generalmente, il contenuto standard del file sources.list è il seguente:

Esempio 6.1. File /etc/apt/sources.list

# Aggiornamenti di sicurezza
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free

# Mirror Debian
deb http://ftp.debian.org/debian stable main contrib non-free
deb-src http://ftp.debian.org/debian stable main contrib non-free

Questo file elenca tutte le sorgenti di pacchetti associati alla versione stabile di Debian. Se si desiderasse usare Testing o Unstable, si dovranno aggiungere (o sostituire) le righe appropriate. Quando la versione desiderata di un pacchetto è disponibile su diversi mirror, verrà usato quello elencato per primo nel file sources.list. Per questa ragione, le sorgenti non ufficiali vengono aggiunte alla fine del file.
Il file sources.list contiene diversi altri tipi di voci: alcune descrivono i CD-ROM Debian che si possiedono. Contrariamente alle altre voci un CD-ROM non è sempre disponibile in quanto deve essere inserito nell'unità e dato che può essere letto solo un disco alla volta; di conseguenza, queste sorgenti sono gestite in maniera leggermente differente. Queste voci devono essere aggiunte con il programma apt-cdrom, solitamente eseguito con il parametro add. Quest'ultimo chiederà di inserire il disco nel lettore e cercherà nel contenuto alla ricerca dei file Packages. Questi file saranno usati per aggiornare il database dei pacchetti disponibili (ciò di norma è fatto dal comando aptitude update). Da quel momento in poi, APT può richiedere di inserire il disco se avrà bisogno di uno dei suoi pacchetti.

6.1.1. Altri repository ufficiali disponibili

6.1.1.1. Aggiornamenti di Stable

Una volta pubblicata, la distribuzione Stable viene aggiornata solo ogni 2 mesi circa al fine di integrare gli aggiornamenti di sicurezza pubblicati in security.debian.org.
Questo rilascio minore può includere anche gli aggiornamenti per i pacchetti che devono evolvere nel tempo... come le regole di rilevamento spam di spamassassin, il database dei virus di clamav o le regole per l'ora legale di tutti i fusi orari (tzdata).
Tutti questi aggiornamenti sono preparati in un repository conosciuto come proposed-updates. Chiunque può usare questo repository per testare tali aggiornamenti prima della loro pubblicazione ufficiale. L'esempio di seguito usa l'alias squeeze-proposed-updates che è sia più esplicito sia più coerente dato che esiste anche lenny-proposed-updates (per gli aggiornamenti di Oldstable):
deb http://ftp.debian.org/debian squeeze-proposed-updates main contrib non-free
Una volta pronti, gli aggiornamenti più importanti, quelli che non possono aspettare il prossimo rilascio minore di Debian, sono pubblicati nel repository stable-updates (che ci si aspetta sia usato dalla maggior parte dei sistemi):
deb http://ftp.debian.org/debian stable-updates main contrib non-free

6.1.1.2. I backport di backports.debian.org

Non sorprende che il server backports.debian.org ospiti i "backport di pacchetti". Il termine si riferisce ad un pacchetto di un qualche software recente che è stato ricompilato per una distribuzione più vecchia, generalmente per Stable. Quando la distribuzione diventa un po' datata, numerosi progetti software hanno rilasciato nuove versioni che non sono integrate nell'attuale Stable (che è modificata solo per risolvere i problemi più critici, come quelli di sicurezza). Dal momento che le distribuzioni Testing e Unstable possono essere più rischiose, a volte alcuni volontari offrono le versioni ricompilate per Stable delle applicazioni recenti, il che ha il vantaggio di limitare la potenziale instabilità ad un esiguo numero di pacchetti selezionati.
La voce in sources.list che fa riferimento ai backport per la distribuzione Squeeze è la seguente:
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free

6.1.1.3. I repository Experimental

L'archivio dei pacchetti Experimental è presente in tutti i mirror Debian, e contiene i pacchetti che non sono ancora nella distribuzione Unstable per colpa della loro qualità inferiore agli standard: spesso sono versioni di sviluppo o pre-versioni (alfa, beta, candidata al rilascio...). Un pacchetto può anche essere inserito lì dopo aver subito modifiche che possono generare problemi. Il manutentore quindi cerca di scoprirli grazie all'aiuto di utenti esperti in grado di gestire problemi importanti. Dopo questa prima fase, il pacchetto viene spostato in Unstable, dove raggiunge un pubblico molto più grande e dove verrà testato in modo molto più dettagliato.
Experimental è generalmente usata dagli utenti a cui non importa rovinare il proprio sistema e ripararlo. Questa distribuzione offre la possibilità di importare un pacchetto che un utente vuol provare o utilizzare in caso di necessità. Questo è esattamente come Debian lo tratta, in quanto aggiungerlo nel file sources.list di APT non porta all'uso sistematico dei suoi pacchetti. La riga da aggiungere è:
deb http://ftp.debian.org/debian experimental main contrib non-free

6.1.2. Risorse non ufficiali: apt-get.org e mentors.debian.net

Ci sono numerose fonti non ufficiali per i pacchetti Debian create da utenti esperti che hanno ricompilato alcuni software, da programmatori che rendono disponibili a tutti le proprie creazioni, e anche dagli sviluppatori Debian che offrono pre-versioni dei loro pacchetti online. È stato creato un sito web per ricercare queste fonti alternative più facilmente. Contiene una quantità impressionante di fonti di pacchetti Debian che possono essere integrate immediatamente nel file sources.list. Tuttavia, bisogna prestare attenzione a non aggiungere pacchetti in modo casuale. Ogni fonte è progettata per una particolare versione di Debian (quella usata per compilare i pacchetti in questione); ciascun utente dovrebbe mantenere una certa coerenza in quello che sceglie di installare.
Un altro sito interessante è mentors.debian.net, dal momento che raccoglie pacchetti creati dai candidati allo status di sviluppatore ufficiale Debian o da volontari che vogliono creare pacchetti Debian senza passare attraverso quel processo di integrazione. Questi pacchetti sono messi a disposizione senza alcuna garanzia sulla loro qualità; assicurarsi di controllare la loro origine e integrità e testarli prima di considerare il loro utilizzo in produzione.
Installare un pacchetto significa dare i privilegi di root al suo creatore, perché può decidere i contenuti degli script di inizializzazione i quali sono lanciati sotto tale identità. I pacchetti Debian ufficiali sono creati da volontari che sono stati selezionati e vagliati e che possono mettere un sigillo ai loro pacchetti così che la loro origine e integrità possa essere controllata.
In generale, diffidare da un pacchetto di cui non si conosce la provenienza e che non è ospitato su un server ufficiale Debian: valutare il grado di fiducia che si può riporre nel creatore, e controllare l'integrità del pacchetto.