Che cosa è il sistema apt?

Poter installare e rimuovere pacchetti è una gran bella cosa, ma il software di base per farlo (chiamato dpkg) fa esattamente quello e nulla di più. Questo va bene se si desidera scaricare uno o due pacchetti a mano, ma diventa presto problematico quando si cerca di gestire un grande numero di pacchetti. Inoltre, se un bellissimo pacchetto nuovo, richiede software che non è stato ancora installato, è necessario scaricare manualmente i nuovi pacchetti richiesti. Se successivamente si decide di rimuovere il pacchetto non più bellissimo, questi pacchetti aggiuntivi rimarrano nel sistema, usando spazio sul disco, a meno di non rimuoverli manualmente.

Ovviamente tutto questo lavoro manuale è un compito gravoso e perciò la maggior parte dei sistemi di gestione dei pacchetti viene fornita con software che si prende cura in parte o del tutto di questo lavoro. apt è una base comune su cui creare questi programmi: oltre ad aptitude, programmi come synaptic e apt-watch fanno uso di apt.

apt funziona mantenendo un elenco dei pacchetti che possono essere scaricati da Debian sul computer. Questo elenco è usato per trovare i pacchetti che devono essere aggiornati e per installare pacchetti nuovi. apt può anche risolvere molti problemi di dipendenze in modo automatico: ad esempio, quando si sceglie di installare un pacchetto, trova tutti i pacchetti aggiuntivi richiesti e installa anche quelli.

Quando si lavora con un gestore di pacchetti basato su apt, come aptitude, tipicamente si eseguono tre compiti base: si aggiorna l'elenco dei pacchetti che sono disponibili scaricando i nuovi elenchi dai server Debian, si selezionano i pacchetti che devono essere installati, aggiornati o rimossi e da ultimo si attuano le selezioni effettuando di fatto le installazioni, rimozioni, ecc.

I gestori di pacchetti basati su apt leggono l'elenco delle «sorgenti», depositi dei pacchetti Debian, dal file /etc/apt/sources.list. Il formato e il contenuto di questo file esulano dallo scopo di questo documento, ma sono descritti nella pagina di manuale sources.list(5).