3- La démarche

3Úme partie
dimanche 16 janvier 2005
par  Vincent Beuselinck
popularité : 4%

En pratique

1) Prérequis

Tout d’abord, vous devez installer quelques paquetages :
- rpm ;
- rpm-build ;
- spec-helper ;
- libtool ;
- rpmlint.

Le paquetage rpm est probablement déjà installé ;)
Pour les autres paquetages, ouvrez une console en se "loguant" en root, tapez cette commande :

urpmi rpm-build spec-helper libtool rpmlint

Il faut bien sûr accepter l’installation des dépendances que l’utilitaire urpmi vous
réclame.

Décidez maintenant quel utilisateur (ici monpseudo) va compiler le paquet : ça ne doit jamais
être root !

Passez donc sous ce login en tapant :

su monpseudo

Ensuite une deuxième commande va installer les répertoires utiles.

mkdir -p ~/rpm/{BUILD,RPMS/i586,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}

ATTENTION : Remplacez i586 par votre architecture.
Ces répertoires sont installés dans votre répertoire personnel (/home/monpseudo selon l’exemple choisi).

2) La configuration générale

En "standard" sur Mandrake 10, vous trouverez les fichiers suivants :

Ces deux fichiers se trouvent dans le répertoire $HOME de l’utilisateur. Comme vous le
voyez, le premier .rpmrc donne une série
d’équivalences. les développeurs de Mandriva ont pris comme plate-forme de
référence le i586.

Le second fichier contient des variables générales, à savoir :
- topdir contient le chemin vers le dossier rpm donc
/home/monpseudo/rpm.
C’est à partir de cet endroit que RPM s’attend à trouver les sous-dossiers
nécessaires à la fabrication d’un rpm (voir les prérequis).
- tmppath désigne le dossier dans lequel RPM copiera ses fichiers
temporaires pendant la fabrication de l’archive.
# Les variables ci-dessous ne sont utiles que pour le référencement Mandrake.
- signature, c’est le logiciel GPG qui servira à authentifier
votre paquet.
- gpg name, la clé de MandrakeSoft servira à signer le paquet qui sera proposé sur leur serveur [1].
- gpg path, vos fichiers de configuration gpg se trouvent là
(ici, ~/.gnupg signifie dans le dossier $HOME (le  ), sous-dossier caché
gnupg.
- distribution la distribution pour laquelle votre paquet est
conçu.
- vendor c’est vous si vous ne travaillez pas pour
Mandrakesoft.

3) Les fichiers SPECs

Le fichier SPEC est un fichier texte (donc votre éditeur de texte préféré fera l’affaire) qui indique à l’application RPM comment construire votre rpm. Il se découpe en "sections". Voici des extraits commentés du squelette proposé par
Mandrakeclub que nous avons commentés :

4) La compilation

Selon les cas, la compilation se fera de plusieurs façons.
Si vous démarrez d’un fichier src.rpm (ou "srpm"),il vous faudra taper simplement :

rpm --rebuild lenomdemonfichier.src.rpm

Et si tout va bien, vous obtendrez au final une archive lenomdemonfichier.i586.rpm (ou une autre architecture, ça dépend de votre besoin exprimé dans vos fichiers de configuration)

Si vous partez d’un tar.bz2, il vous faut taper :

rpm -ba lenomdemonfichier.spec

— C’est tout ?
— Oui, c’est tout !
— T’es sûr ?
— Bon si vous insistez, voilà d’autres possibilités...

- rpm -ba fait toute la compilation (a signifiant "all", en
français "tout") mais elle peut être décomposée en étapes :
- rpm -bp ne fait par exemple que la préparation avant
compilation
- rpm -bc va jusque la compilation mais n’installe rien dans
buildroot
- rpm -bi va jusqu’à l’installation dans buildroot mais ne
crée pas les rpm
- rpm -bb construit juste le i586.rpm mais pas le src.rpm (les
étapes précédentes sont donc faites)
- rpm -bs construit le src.rpm mais pas le i586.rpm
- rpm -bl vérifie la présence des fichiers dont il aura besoin
pour l’installation (il faut donc "construire" avant).

Dans tous les cas, on indique en paramètre le fichier spec et l’endroit où il
se trouve. Parfois celui-ci est directement dans le dossier "taré" des sources
(le sources.tar.bz2), on peut alors soit extraire ce fichier SPEC pour pouvoir
lancer notre compilation par rpm -ba soit remplacer le B de rpm -ba par un
T (rpm -ta) qui demande à rpm d’aller chercher le SPEC dans le fichier tar
des sources.


4Úme partie : Quelques exemples

Retour à la 2Úme partie : Les principes de création d’un RPM


[1La mise en oeuvre se fera par Mandrakesoft si les développeurs responsables des archives décident d’intègrer votre paquet à la distribution. Cf http://qa.mandriva.com/twiki/bin/vi...


Commentaires

Annonces

Annuaire LibreNord

Retrouvez l’annuaire de logiciels libres créé par l’association Club Linux Nord-Pas de Calais sur le site suivant http://www.librenord.org