Capitolo 1. Descrizione generale

Indice

1.1. Anatomia del sistema dei pacchetti

Il pacchetto APT al momento contiene due sezioni, il metodo APT per dselect e l'interfaccia utente a riga di comando apt-get; entrambi forniscono un modo per installare e rimuovere pacchetti, così come per scaricarne di nuovi da Internet.

Il sistema dei pacchetti di Debian contiene un gran numero di informazioni associate a ciascun pacchetto, per garantire che si integri facilmente ed in maniera pulita nel sistema. La sua caratteristica più importante è il sistema di dipendenze.

Il sistema di dipendenze permette ai singoli programmi di fare uso degli elementi condivisi del sistema, quali le librerie. Semplifica l'inserimento delle porzioni di un programma usate raramente in pacchetti separati per ridurre il numero di cose che l'utente medio deve installare. Inoltre, rende possibile avere più di una scelta per cose quali i programmi di trasferimento della 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, mailcrypt è un'estensione di emacs che aiuta a cifrare i messaggi di posta elettronica GPG. Se GPG non è installato, mailcrypt è inutile, quindi mailcrypt ha una dipendenza semplice da GPG. Inoltre, dato che si tratta di un'estensione di emacs, mailcrypt ha anche una dipendenza semplice da emacs, senza il quale è totalmente inutile.

L'altro tipo di dipendenza importante da capire è la dipendenza di conflitto; significa che un pacchetto, quando è installato insieme ad un altro, non funziona e potrebbe potenzialmente causare seri danni al sistema. Come esempio, si consideri un programma di trasporto della posta, quale sendmail, exim o qmail: non è possibile averne installati due contemporaneamente, perché entrambi hanno bisogno di restare in ascolto sulla 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 verso tutti gli altri.

Come ulteriore complicazione, c'è la possibilità per un pacchetto di far finta di essere un altro. Ad esempio, exim e sendmail sono dal lato pratico identici, dato che entrambi consegnano la posta e utilizzano un'interfaccia comune. Il sistema dei pacchetti quindi fornisce un mezzo con cui entrambi possono dichiarare di essere programmi di trasporto della posta; perciò entrambi dichiarano di fornire un mail-transport-agent e gli altri pacchetti che hanno bisogno di un programma di trasferimento della posta possono dipendere da mail-transport-agent. Quando si cerca di modificare a mano i pacchetti, questo può portare a moltissima confusione.

In un determinato momento una singola dipendenza può essere soddisfatta dai pacchetti già installati o può non esserlo; APT cerca di risolvere i problemi di dipendenze fornendo svariati algoritmi automatici, che aiutano a selezionare i pacchetti da installare.