3- La démarche

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

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


[1] La 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

Agenda

<<

2012

>>

<<

Février

>>

Aujourd'hui

LuMaMeJeVeSaDi
303112345
6789101112
13141516171819
20212223242526
2728291234

Brèves

28 février 2011 - Nouvelles du Libre

Retrouvez tous les articles du site de l’association Club Linux Nord-Pas de Calais en suivant le (...)