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.