10.1. Usare il Red Hat Package Manager (RPM)

La distribuzione Red Hat, incluso il kernel, le librerie e le applicazioni, è composta da file RPM. Un file RPM, anche conosciuto come "pacchetto" rappresenta un metodo per distribuire il software in modo che posso essere facilmente installato, aggiornato e cancellato. I file RPM contengono informazioni sul nome del pacchetto, la versione, altri file da cui dipendono (se ci sono), la piattaforma (come Intel, Alpha, ecc.) e la destinazione di default dei file dopo l'installazione.

L'utilità RPM è stata sviluppata inizialmente da Red Hat e distribuita come prodotto Open Source (cosa comune nel mondo Linux). Altri sviluppatori vi hanno poi aggiunto alcune funzionalità extra. Il metodo RPM è diventato molto popolare e viene usato,oltre ovviamente a Red Hat, anche da altre distribuzioni.

Le applicazioni popolari di Linux vengono quasi sempre rilasciate come file RPM. Comunque, nel mondo Unix il metodo di distribuzione standard dei pacchetti continua ad essere fatto con i c.d. "tarballs". I tarball sono file che possono essere letti con l'utilità "tar". Installare con tar risulta spesso più noioso rispetto a RPM. Allora, perché la gente continua a farlo? Sfortunatamente, talvolta ci vogliono alcune settimane prima che gli sviluppatori convertano l'ultima versioni di un pacchetto nel formato RPM (molti la rilasciano come tarball).

Se iniziate a installare o aggiornare il vostro sistema, o le vostre applicazioni con tar, il vostro database RPM diventerà antiquato. Certamente non è un buon affare (quando usavo Slackware utilizzavo esclusivamente tar --non c'era altra scelta-- e non era poi così scomodo), ma quando è possibile mi armo di pazienza e aspetto che un RPM diventi disponibile, oppure mando un richiesta cortese allo sviluppatore del pacchetto. (Potete anche fare voi i vostri file RPM e distribuirli agli altri; ciò risulterebbe senz'altro utile agli sviluppatori che non hanno l'abilità o il tempo di farli).

Un buon posto per verificare la disponibilità degli RPM di un software è il deposito degli RPM su http://rufus.w3.org/linux/RPM/. Esso è diviso in categorie che vi possono aiutare a trovare un certo file RPM, e contiene rimandi a migliaia di questi file.

Per interrogare un pacchetto, usate use "rpm -q pkg-name" (per esempio "rpm -q pine"). RPM vi mostrerà la versione del pacchetto già installato, oppure vi dirà che non lo avete installato.

Posto che il pacchetto sia già stato installato, ed è una versione precedente all'aggiornamento che avete scaricato, potete applicare l'aggiornamento con "rpm -Uvh pkg-name". Se tutto va per il meglio, il pacchetto verrà automaticamente installato e sarà immediatamente pronto all'uso. Nel caso contrario, RPM vi fornirà una buona ragione (magari un pacchetto di supporto deve prima essere aggiornato). Ciò potrebbe darvi un po' da pensare, ma problemi come questi sono molto facili da superare.

Se, invece, il pacchetto non è già installato, e voi decidete di farlo, digitate "rpm -ivh pkg-name". Se c'è bisogno di altri pacchetti, RPM ve lo farà sapere.

Alcune volete, vorrete installare un pacchetto che è disponibile solo in formato sorgente. Infatti, a meno che non stiate installando pacchetti provenienti da fonte sicura (come il sito ftp di Red Hat) probabilmente dovrete installare da sorgente nel caso i binari contengano trojan e altre cose pericolose (sicuramente, anche un sorgente RPM può contenere queste cose, ma è poco probabile che accada perché verrebbero scoperti in poco tempo da un altro sviluppatore).

Per installare un pacchetto dal sorgente bisogna specificare lo switch "rebuild" all'utilità RPM. Per esempio:

rpm -ivh --rebuild foo.src.rpm

Il comando sopra dovrebbe configurare e compilare il pacchetto "foo", producendo un file binario RPM nella directory "/usr/src/redhat/RPMS/i386/" (posto che stiate utilizzando Linux su una piattaforma Intel). Potete poi installare il pacchetto normalmente.

In ultimo, se avete problemi a compilare un pacchetto in codice sorgente (forse avete bisogno di modificare un makefile, oppure cambiare un'opzione di configurazione, ecc.) seguite i seguenti passaggi (sempre riferiti al nostro pacchetto di esempio "foo") per compilare il sorgente, ottenere un nuovo pacchetto binario, e poi fare l'installazione dal binario:

rpm -ivh foo.src.rpm
cd /usr/src/redhat/SPECS
pico -w foo.spec

Fate tutte le modifiche che credete siano necessarie al file ".spec", a quindi digitate:

rpm -ba foo.spec

Questo ricostruirà il pacchetto usando qualunque modifica abbiate fatto al file ".spec". Come sopra, il risultante file binario RPM si troverà in "/usr/src/redhat/RPMS/i386/", e potrete installarlo normalmente.

Dovreste dare un'occhiata alla documentazione di Red Hat per maggiori informazioni sugli RPM. È uno strumento così potente che vale la pena imparare anche i piccoli dettagli. La miglior risorsa di informazioni sugli RPM è "Maximum RPM", che è disponibile sia in forma cartacea sia in formato postscript su http://www.rpm.org/maximum-rpm.ps.gz. (Se decidete di stampare il documento postscript sappiate che avrete bisogno di molta carta!). È disponibile anche una guida di dimensioni più contenute, il "RPM-HOWTO", su http://www.rpm.org/support/RPM-HOWTO.html