Il formato rpm (RedHat Packet Manager), creato dalla RedHat, è probabilmente quello più diffuso e utilizzato, in quanto è stato adottato da numerose altre distribuzioni (Mandrake, SuSE, Caldera e altre). Un pacchetto rpm è composto da due tipi di file
-i file che compongono il software vero e proprio: non solo gli eseguibili, ma anche eventuali file accessori (librerie, documentazione, icone, ecc.)
-un insieme di file relativi al pacchetto stesso: una descrizione del software, una lista delle dipendenze (ovvero di altri pacchetti indispensabili per il suo funzionamento), eventuali script da eseguire al momento dell’installazione, eccetera
Oltre ai pacchetti Rpm, è possibile trovare su Internet, o sui Cd della vostra distribuzione Linux, dei file etichettati come Srpm: si tratta di pacchetti che, come gli archivi tar.gz, contengono i sorgenti di un programma e costituiscono il punto di partenza per ottenere un file rpm che contenga gli eseguibili. Ogni file Srpm contiene un file particolare chiamato specfile (abbreviazione di specification file): è sulla base di quest’ultimo che, dopo la compilazione, un file rpm contiene le informazioni cui abbiamo accennato. Il nome stesso di un file rpm contiene un gran numero di informazioni, per esempio il pacchetto galeon-0.12.6-1mdk.i586.rpm può essere interpretato come segue: • galeon è il nome del programma; • 0.12.6 il numero della versione contenuta nel pacchetto; • 1mdk indica che questo file appartiene alla distribuzione Mandrake Linux (mdk) e che si tratta della prima revisione del pacchetto (1); • i586 specifica il tipo di processore per il quale è stato compilato il pacchetto, in questo caso un processore della classe Pentium o superiore; • rpm indica che si tratta di un pacchetto di tipo rpm. Alcuni pacchetti Rpm contengono all’interno del proprio nome un suffisso devel, per esempio gnome-libs-devel-1.4.1.2-8mdk.i586.rpm. Questi pacchetti contengono file di tipo “include” e altri ancora, necessari per lo sviluppo di software con o per il programma in questione; l’utente normale, in genere, può tranquillamente fare a meno di installarli, a meno che non siano richiesti a causa di qualche dipendenza. Un’ultima parola sulle dipendenze, un concetto che può confondere chi si avvicina a Linux per la prima volta: è possibile che un pacchetto abbia bisogno di altri per funzionare correttamente; in tal caso si dice che questi pacchetti indispensabili sono le dipendenze del software che vogliamo installare. Se vogliamo installare l’editor di testi gEdit, per esempio, deve essere già installato l’ambiente grafico Gnome, oppure deve essere installato contestualmente a gEdit, dato che tra le sue dipendenze quest’ultimo ha anche gnome-libs e gnome-print, oltre a diverse librerie comunque legate a Gnome (libgconf, ecc.).
In pratica, questo programma si aspetta di trovare quelle librerie che gli garantiscono determinate funzionalità; in caso contrario, è assai probabile che si rifiuti persino di essere lanciato in esecuzione. Per saperne di più digitare:
man rpm
Caratteristiche di un sistema basato su rpm
Un sistema basato sul formato rpm permette di gestire l’installazione, l’aggiornamento e la rimozione delle applicazioni in maniera estremamente flessibile ed efficiente. Il software installato entra a far parte di un database centrale che tiene traccia di quel che viene aggiunto o rimosso, e può essere interrogato per ottenere informazioni riguardo i pacchetti (contenuto, data di creazione, ecc.) e le loro dipendenze. Un sistema basato su rpm presenta diversi vantaggi rispetto all’installazione da sorgenti:
-i pacchetti sono precompilati e spesso includono patch di vario tipo e/o ottimizzazioni che l’utente più inesperto avrebbe trovato troppo complicato applicare; questo è particolarmente vero per i pacchetti contenuti nelle varie distribuzioni che usano rpm: il kernel ne è un esempio classico;
-prima dell’installazione vengono controllate le dipendenze: l’utente viene avvertito in caso risultino assenti programmi essenziali per il funzionamento del software che intende installare e non gli sarà permesso di installarlo, rendendo così il sistema potenzialmente instabile, finché le dipendenze non saranno soddisfatte; viceversa, la disinstallazione di software indispensabile per il sistema, o che comunque rappresenta una dipendenza di altri programmi, non viene consentita se non ricorrendo a opzioni specifiche (da usare quindi solo se sapete a cosa si va incontro);
-un pacchetto rpm può trovarsi non solo su un disco locale o su una partizione Nfs, ma anche su un sito Ftp: effettuare un aggiornamento in rete diventa semplicissimo, infatti tutte le distribuzioni basate su rpm offrono questa possibilità, spesso resa del tutto trasparente grazie a programmi dotati di interfaccia grafica.
I difetti del formato rpm sono sostanzialmente due
-le dipendenze non vengono risolte in maniera automatica: a parte informarvi che il pacchetto Sawfish necessita di Librep e Rep-Gtk, il programma rpm non può far altro che aspettare pazientemente che si installino anche tali componenti; questa limitazione, tuttavia, è almeno in parte superata dai programmi Gui più recenti, in particolare quelli che permettono un aggiornamento via Internet;
-il software compilato manualmente non rientra nel database, e viene pertanto ignorato. Ammettiamo, infatti, che abbiate compilato e installato l’ultima versione della libreria Libxml: ciononostante, al momento di installare un pacchetto rpm che contiene il navigatore Galeon riceverete un avvertimento riguardo l’assenza di Libxml, anche se queste sono già installate e presenti nel sistema