» COME COMPILARE E INSTALLARE UN PACCHETTO IN FORMATO .SRC.RPM

(a cura di Willy, Gigante e Sandro Bonazzola)

Prima o poi nella vita di ogni linuxista arriva il momento in cui i programmi "preconfezionati" in pacchetti binari cominciano a stare stretti (oppure addirittura non sono disponibili per la propria distribuzione :-)

Nasce allora l'esigenza di compilare i codici sorgenti in modo da adattarli alle caratteristiche del proprio sistema Linux; ecco alcune veloci informazioni per completare questa procedura, nel caso del piu' diffuso formato di pacchetti sorgenti, il .SRC.RPM.

  1. Scaricare il pacchetto che contiene i files sorgenti, che chiameremo package.src.rpm nel nostro esempio; puo' essere utile controllare su rpmfind.net se non esistano versioni piu' recenti del pacchetto.
  2. Se si vuole essere assolutamente certi sulla provenienza del pacchetto, scaricare sia la firma MD5, sia quella GPG e verificare che le firme corrispondano con quelle del sito, con il comando rpm -V package.src.rpm.
    1. Ricompilare l'SRPM: rpm --rebuild --target architettura-ditribuzione-sistemaoperativo package.src.rpm (ad esempio per la distribuzione Mandrake su processore Celeron: rpm --rebuild --target i686-mdk-linux package.src.rpm).
    2. In alternativa si possono eseguire i seguenti comandi: installare il pacchetto dei sorgenti con rpm -i package.src.rpm, spostarsi nella directory dove sono stati scompattati i files sorgenti: cd /usr/src/packages/SPECS (per alcune distribuzioni il percorso potrebbe essere leggermente diverso) e creare il pacchetto rpm contenente i files binari: rpm -bb --target architettura-ditribuzione-sistemaoperativo package.spec
  3. Se mancano delle librerie necessarie alla compilazione (di solito chiamate libXXX-dev), installarle e ricominciare dal punto 3.
  4. Spostarsi nella directory dove e' stato creato il pacchetto dei binari compilati: cd /usr/src/packages/RPM/i386 (per alcune distribuzioni il percorso potrebbe essere leggermente diverso) e installarlo.
    1. Installazione ex novo: rpm -i package.architettura.rpm (es. rpm -i package.i686.rpm)
    2. Aggiornamento di un pacchetto esistente: rpm -U package.architettura.rpm
    3. Per Mandrake: urpmi package.architettura.rpm
  5. Nel caso in cui urpmi o rpm segnalino un conflitto con una libreria esistente:
    1. Provare a forzare l'installazione: rpm --force -U package.rpm
    2. Se persistono problemi, aggiornare il pacchetto che contiene il file che crea conflitto (ed eventualmente anche tutti i pacchetti che dipendono da quello).

(a cura di Willy, Gigante e Sandro Bonazzola)