[precedente] Documentazione in Linux - Copertina - Distribuzioni di Linux [successivo]

Articolo


RedHat Packaging Manager

Fin dalle prime versioni della distribuzione RedHat, gli sviluppatori di quella che è poi diventata una delle più famose, hanno sentito l'esigenza di un sistema di packaging dei centinaia (ormai migliaia) di pacchetti che la compongono. Tale sistema doveva essere semplice da utilizzare, capace di gestire pacchetti binari e in formato sorgente e soprattutto in grado di tenere ordinato il computer anche dopo l'installazione di molti programmi (cosa che i sistemi di packaging di altri sistemi operativi proprietari non fanno). Nacque, così, il Redhat Packaging Manager (RPM) e fu subito un successo perchá la scelta degli sviluppatori è stata quella di proteggere tale software con la licenza GPL della GNU (http://www.fsf.org/copyleft/copyleft.html).

Oggi tutte le maggiori distribuzioni (RedHat, SuSE e Caldera) utilizzano il formato di packaging rpm per l'installazione, la gestione e la manutenzione dei pacchetti o ne sono compatibili (Debian).

Programmi come xrpm o glint ne costituiscono il front-end grafico, ma l'utilizzazione da linea di comando è certamente la più potente ed immediata. Vediamo alcune istruzioni:

  1. Procedura di installazione di un programma
    rpm -ivh bash-2.01-8.rpm

  2. Procedura di disinstallazione rpm -e bash

  3. Procedura di upgrade
    rpm -Uvh bash-2.01-9.rpm
    l'opzione "v" rende verbosa la procedura che si sta compiendo, mentre "h" ci permette di conoscere lo stato di avanzamento della procedura stessa. L'opzione "vv" rende incredibilmente verbosa e anche un po' noiosa la procedura.

  4. Messaggi di errore durante le procedure
    Uno dei messaggi più comuni è quello rigurdante la non esistenza di alcune librerie o la necessità di aggiornarle, durante le procedure di installazione o upgrade. Nel caso voleste continuare la procedura il comando da utilizzare è il seguente:

    rpm -Uvh --nodeps bash-2.01-9.rpm
    Quando invece la procedura provocherebbe problemi ad altri programmi, dovete forzare, ad esempio, la disinstallazione:

    rpm -e --force bash

  5. Informazioni
    Vediamo le query che possono essere effettuate sia al database dei pacchetti, sia ai singoli pacchetti: rpm -qa
    listato di tutti i pacchetti installati

    rpm -qa | grep bash
    ricerca nel listato il la stringa bash

    rpm -qi bash
    tutte le informazioni sul pacchetto bash

    rpm -ql bash
    il listato di tutti i file installati dal pacchetto

    rpm -qf /bin/bash
    restituisce il nome del pacchetto a cui appartiene il file

    rpm -Vv bash
    verifica la corretta installazione del pacchetto

  6. Per le persone a cui piace compilarsi i pacchetti

    Tante persone preferiscono ricompilarsi i programmi dai sorgenti in modo da poterli ottimizzare secondo il processore utilizzato (vedi egcs e pgcc) ovvero perchá utilizzano librerie particolari. Il sistema RPM permette anche di fare questo. E' necessario scaricare i pacchetti non in formato binario, ma in formato sorgente (SRPMS) e dare il seguente comando:

    rpm --rebuild bash-2.01-8.src.rpm

    in questo modo rpm penserà alla compilazione e a eventuali patch da inserire, restituendo il pacchetto binario nella directory /usr/src/redhat (dipende dalla distribuzione).

    Naturalmente elencare tutte le opzioni di rpm è inutile, anche perchá ottimamente e esaurientamente descritte dal manuale in linea (man rpm). Da leggere, oltre al manuale commercializzato dalla RedHat stessa per chi vuole approfondire, sono anche le TIPS e l'HOWTO in formato html...dove sono ? basta lanciare il comando : rpm -ql rpm

    È stato ultimamente razionalizzato, per gli amanti del genere, il sistema di segnatura dei pacchetti aggiungendo alle segnature MD5 e SIZE il più famoso e diffuso sistema PGP a 1024 bytes...dove è permesso!!!

    Se si vuole navigare un pacchetto senza installarlo vi invito a provare ad utilizzare mc (midnight commander): occorre trovare un pacchetto in formato rpm e dopo averlo evidenziato premere invio ed il gioco è fatto.

    di Gabriele Paciucci


    [precedente] Documentazione in Linux - Copertina - Distribuzioni di Linux [successivo]