Succincte documentation de RPM : Compilation depuis un paquetage RPM source (SRPM)
Previous: Les pièges
Next: Paquetages de provenances différentes

4. Compilation depuis un paquetage RPM source (SRPM)

Les paquetages dont le nom se termine par .src.rpm sont un peu particuliers : ils contiennent le code source du logiciel (ou plus rarement des fichiers objets non liés) et des instructions pour produire un exécutable.

Leur utilisation nécessite les droits d'écriture sur les sous-répertoires de /usr/src/redhat/, ou bien un fichier .rpmrc (pour RPM 2.x) ou .rpmmacros (pour RPM 3.x) bien configuré. Pour savoir quelle version de RPM est installée, utilisez la commande rpm --version. Voici par exemple mon fichier .rpmmacros :

%_topdir  /home/arnaud/usr/src/redhat
%_signature  pgp
%_pgp_name  Arnaud Gomes-do-Vale <arnaud@carrosse.frmug.org>
%_pgp_path  /home/arnaud/.pgp

Voici la façon la plus simple d'obtenir un paquetage binaire à partir d'un paquetage source :

rpm --rebuild toto-1.3-2.src.rpm
Vous allez obtenir un ou plusieurs paquetages qui pourront ensuite être installés normalement : par exemple, sous Linux/Intel, /usr/src/redhat/RPMS/i386/toto-1.3-2.i386.rpm, /usr/src/redhat/RPMS/i386/toto-static-1.3-2.i386.rpm, /usr/src/redhat/RPMS/i386/toto-devel-1.3-2.i386.rpm.

Vous pouvez aussi modifier les sources avant de construire votre paquetage RPM binaire. Pour cela, il faut d'abord désarchiver le RPM source:

rpm -i toto-1.3-2.src.rpm
Après cette opération, les sources du logiciel se trouvent dans le répertoire /usr/src/redhat/SOURCES/ (ou autre si vous avez configuré RPM en ce sens) et le repertoire /usr/src/redhat/SPECS/ contient un fichier spec (par exemple toto.spec) indiquant à RPM comment le paquetage binaire doit être construit.

Vous pouvez modifier les sources, mais vous ne devez pas changer les noms des fichiers sources, à moins de modifier également le fichier spec.

Ensuite, pour reconstruire un paquetage binaire:

rpm -bb --clean /usr/src/redhat/SPECS/toto.spec
Si vous voulez en plus un RPM source incorporant vos modifications:
rpm -ba --clean /usr/src/redhat/SPECS/toto.spec
Le RPM source se trouvera sous /usr/src/redhat/SRPMS/.

Vous pouvez facilement apporter des modifications importantes à un paquetage existant avec un emploi judicieux de diff et quelques modifications du fichier spec. Vous pouvez également facilement construire vos propres paquetages. Pour plus de renseignements à ce sujet, reportez-vous au document RPM-HOWTO.


Succincte documentation de RPM : Compilation depuis un paquetage RPM source (SRPM)
Previous: Les pièges
Next: Paquetages de provenances différentes