Quando si parla di pacchetti si intende un archivio di file contenente del software (compilato o in forma di sorgenti), pronto per essere installato sulla macchina in maniera, solitamente, quasi del tutto automatica; a differenza degli archivi contenenti i sorgenti, con i pacchetti precompilati non ci dovremo preoccupare di compilare ed installare il software, con tutte le opzioni del caso: chi ha creato il pacchetto è sicuramente una persona preparata e con un sacco di esperienza alle spalle; inoltre, il suo pacchetto sarà certamente stato testato prima di diventare scaricabile da tutti e, ultimo ma non meno importante, il pacchetto è molto più semplice da rimuovere. Il tutto sta, ovviamente, nel saper scegliere i pacchetti giusti!
I formati più utilizzati di pacchetto sono i ".deb" e i ".rpm": i primi sono utilizzati da distribuzioni come Debian e relative derivate, i secondi da RedHat e derivate (ma anche da SuSE).
Qui nasce il primo grande dubbio: un pacchetto di RedHat può essere installato anche su una SuSE e viceversa? In fondo, il formato del pacchetto è lo stesso! In genere, operazioni di questo tipo portano ad avere il software installato e funzionante, sebbene non siano troppo consigliabili.
Chiariamo il tutto con un esempio: utilizzate una SuSE e volete installare il pacchetto "abc.rpm" scaricato dal sito di RedHat: esistono alternative? Almeno due:
- se il pacchetto esiste per una distribuzione, con grandissima probabilità esisterà anche per le altre, quindi basterà una ricerca sul sito di SuSE per vedere se anche loro hanno rilasciato tale software come pacchetto rpm;
- dovesse non succedere, il software sarà certamente presente in formato sorgente, quindi basterà un po' di coraggio per compilarsi il pacchetto e, per i più stoici, potrebbe essere anche una buona scusa per creare il primo rpm fatto in casa! Pochi sono i programmi che non si possono ottenere in questo modo: spesso sono solamente i programmi di installazione e configurazione della distribuzione che, sebbene siano spesso forniti come codice sorgente, servono solo a fare danni se portati su altre distribuzioni.
Vediamo ora, in chiusura dell'argomento, come effettivamente si installino tali pacchetti. Per gli rpm, esiste un apposito programma di gestione chiamato con molta originalità, rpm (RedHat Packet Manager), la cui sintassi generale è: rpm [opzioni] pacchetto.rpm
In [opzioni] si può specificare cosa fare con il pacchetto: installarlo (-i), rimuoverlo ( e), aggiornarlo (-U), eseguire una "finta installazione" per controllare se tutto può essere realmente eseguito senza problemi (--test) ecc. Per la gestione dei pacchetti .deb esiste invece il programma dpkg, la cui sintassi di base è identica a quella di rpm; anche le operazioni (installazione, rimozione, query ecc.) di gestione del pacchetto sono pressochè le stesse.
Ma come sono fatti, si chiederà qualcuno, i pacchetti al loro interno? Chi abbia creato almeno una volta un pacchetto sa che non basta creare un archivio di file, ma serve qualcosa in più: se di base all'interno di un pacchetto la parte predominante sia l'archivio contenente i file necessari al programma, non si può dire che sia tutto qui! Un pacchetto contiene molte informazioni in più del semplice archivio: ad esempio, è presente in ogni pacchetto la descrizione del programma, la lista delle dipendenze che devono essere soddisfatte per la corretta installazione del software, le directory nelle quali devono essere copiati i file del programma e via dicendo. Un pacchetto, quindi, può essere visto come un archivio (contenente il software) accompagnato da una serie di informazioni per l'installazione (ma non solo: anche per la rimozione, per l'interrogazione ecc) del software stesso.
E il tutto in un solo file: potrà tornare utile come esempio il famoso "setup.exe" di moltissimi programmi scritti per sistemi Windows: in un file è contenuto il programma e le istruzioni per la sua installazione, sebbene un pacchetto per Linux sia molto più flessibile e completo!