Secondo Ian Murdock, il padre di Debian, il sistema di package management è la più grande innovazione che (le distribuzioni) Linux abbiano portato all´Informatica: risulta chiara l´importanza di tale argomento nell´utilizzo di un sistema Linux, e il presente articolo intende presentare tale feature all´utente da poco approdato a questo universo.
I sistemi operativi basati su Linux consistono di migliaia di pacchetti software, che contengono software (ad esempio un programma browser, una libreria o un particolare font) e altre informazioni per la sua corretta installazione, quali, tra le altre, la lista delle sue dipendenze (lista di altri pacchetti necessari per il funzionamento).
Un sistema di package management gestisce il processo di scaricamento, installazione, aggiornamento e rimozione dei pacchetti software garantendo nel contempo che tutte le dipendenze vengano onorate.
I pacchetti software (quelli ufficialmente supportati) vengono mantenuti dal medesimo team responsabile della distribuzione (quindi per Debian vengono mantenuti dal team Debian, per Ubuntu da Canonical, e così via) nei cosiddetti repository, generalmente server (con certificati firmati) accessibili via Internet. Sui sistemi Windows i programmi, per contro, devono essere manualmente scaricati dal loro sito Web e quindi installati.
Su Debian, ad esempio, il semplicissimo comando (dato come root):
apt-get install apache2 libapache2-mod-php5
scarica, installa e configura Apache con supporto a PHP in qualche secondo, installazione che sui sistemi Windows richiede scaricamento e configurazione manuali e che non garantisce il puntuale e armonico aggiornamento dei programmi: saranno necessari, ancora, aggiornamenti manuali.
I vantaggi dei sistemi di package management sono quindi:
- scaricamento, installazione e configurazione dei pacchetti estremamente veloce e semplice;
- verifica automatica del checksum dei pacchetti scaricati;
- verifica delle firme elettroniche dei server remoti, di modo da essere assolutamente certi di scaricare solo software sicuri;
- aggiornamento semplice, automatico e "armonico" (vengono aggiornati tutti i software del sistema e non solo quelli relativi al sistema operativo in senso stretto, come avviene su Windows);
- garanzia che le dipendenze siano soddisfatte, di modo da avere un sistema sempre assolutamente funzionante (e mai instabile) secondo le indicazioni dei creatori dei software (quest´ultimo punto vale solamente per le distribuzioni che prediligono la stabilità rispetto alla "moda", come Debian).
Esistono chiaramente front-end grafici per i sistemi di package manager, quale il celebre Ubuntu Software Center (visibile nell´immagine di apertura) per l´omonima distribuzione Linux.
Per finire, un´annotazione su un aspetto per nulla secondario che, tra i novizi, crea molta confusione: al contrario di Windows, dove è l´utente a decidere in quale posizione installare il software (salvo poi trovarsi il registro modificato e una pletora di librerie), su Linux i file componenti il programma vengono salvati secondo il Filesystem Hierarchy Standard (cioè in cartelle predefinite: /usr/bin, /lib, /etc,...); non vi è inoltre alcun registro centralizzato: i file di configurazione dei programmi sono ordinatamente in /etc (configurazioni system-wide/servizi) o in /home/.progName (configurazioni utente).