Construction de RPM pour la distribution Fedora Core


Logo rpm
Pour créer un paquetage RPM, l'étape la plus importante est la création du fichier spec. Ce dernier décrit la compilation et l'installation, dit à RPM quels fichiers résultant de cette installation doivent être mis dans le paquetage et comment finalement installer ces fichiers sur le système de l'utilisateur.

Afin de bien comprendre son fonctionnement, voici un exemple de fichier spec, que j'ai utilisé pour construire le rpm du logiciel conky. Vous pouvez le consulter en cliquant sur le lien qui suit, je vous conseil d'ailleurs de l'ouvrir dans une nouvelle fenêtre, afin de bien suivre les différentes étapes de sa création.

Consulter le fichier conky.spec

La section En-tête

%define name conky
%define version 1.3.4
%define release fc4

Ces 3 lignes définissent des constantes. Ainsi, lors de la construction du rpm, tous les champs %{name}, du fichier spec, seront remplacés par conky par exemple.

Summary : court résumé, en une seule ligne, de la description du paquetage.

Source : permet à rpm de savoir quel fichier source utiliser pour construire le paquet. Il faudra placer l'archive tar.gz dans /usr/src/redhat/SOURCES.

Group : ceci indique à quel l'endroit, de l'arborescence générale des paquetages, rpm doit placer le paquet.

BuildRoot : cette ligne très importante ne peut être omise. Elle demande à rpm, pour installer le programme, d'utiliser un dossier spécial sur la machine où se fait la compilation. Ici ce sera /var/tmp/conky-1.3.4-fc4-buildroot/

License : ce champ (qui remplace désarmait Copyright) définit la licence choisie par le propriétaire pour le programme.

Requires : indique les dépendances dont le logiciel à besoin pour fonctionner.

%description : texte pouvant faire plusieurs lignes qui est une description complète du programme qui va être installé.

La Section Prep

%prep : cette section contient le script exécuté en premier par rpm.

%setup -q : extrait les sources (silencieusement, -q) et ce rend dans ce répertoire.

La Section Build

%build : cette section contient le script qui construit réellement le paquetage. Ce sont des commandes lancées sur l'arborescence des sources décompressées.

%configure : c'est la première ligne, qui configure des sources utilisant autoconf. %configure lance un ./configure avec de nombreuses options.

%make : c'est une simple macro qui, de base, exécute un make avec les paramètres multiprocesseurs appropriés.

La section Install

%install : c'est la première commande exécutée dans la section %install qui nettoie le dossier d'une éventuelle précédente installation.

%makeinstall : cette macro se développe en "make install" avec diverses options pour que le logiciel soit installé dans le dossier d'installation $RPM_BUILD_ROOT

%clean : cette section nettoie le dossier de construction $RPM_BUILD_ROOT.

La section Files

%files : cette section est une liste de fichiers pris dans le dossier d'installation simulée pour être incorporés au paquetage. La liste des fichiers doit être écrite à la main dans le fichier spec.

Lorsque vous créerez votre fichier spec, vous ne saurez sûrement pas la liste des fichiers à intégrer dans le paquetage. Il vous faudra donc laisser ce champ vide et exécuter la commande rpmbuild -bb conky.spec pour les connaître :

Erreur de construction de RPM:
Fichier(s) installé(s) (mais non empaquetés):
/usr/bin/conky
/usr/share/man/man1/conky.1.gz

Désormais, on peut ajouter les deux fichiers au paquetage avec les macros suivantes :
%{_mandir}/man1/* pour le fichier de manuel
%{_bindir}/* pour le fichier binaire

On peut voir qu'il y a des macros pour chaque type de chemin nécessaire. Voici les plus utiles (regardez dans /usr/lib/rpm/macros pour les avoir toutes) : %{_prefix}, %{_bindir}, %{_sbindir}, %{_datadir}, %{_libdir}, %{_mandir}, %{_infodir}, %{_sysconfdir}.

%defattr(-,root,root,0755) : ce champ définit les droits à appliquer à chaque fichier qui sera copié sur le système de l'utilisateur. Ici, le propriétaire sera root et les droits seront mit sur rwxr-xr-x (0755).

%doc README NEWS COPYING AUTHORS : le champ spécial %doc désigne les fichiers qui font partie de la documentation du paquetage. Les dits fichiers seront placés, ici, dans /usr/share/doc/conky-1.3.4/.

%changelog : cette section garde une trace des changements apportés au paquetage. Chaque paragraphe de cette section correspond à une nouvelle version du paquetage

Certaine section non pas été évoqué ici, comme la section patch qui permet d'appliquer un patch. Un petit tour sur Internet, vous en dira plus là dessus, lorsque vous aurez atteint un niveau suffisent pour vous y pencher !

La construction

Notre fichier spec est enfin complet, on peut donc passer à la dernière étape, la construction. Il faudra lancer la commande rpmbuild -ba conky.spec pour la démarrer.

Si vous ne rencontrez pas d'erreur, le paquet sera placé dans le dossier /usr/src/redhat/RPMS/. Vous pourrez alors tester le bon fonctionnement de votre rpm en l'installant, ou vérifier son en-tête avec rpm -qlip mon_paquet.rpm.


1 Commentaires pour "Construction de RPM pour la distribution Fedora Core"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Un grand merci au passage à RemiFedora, qui à su m'enseigner les bases de la construction d'un rpm !!!

    RépondreRépondre
    pti-seb , le 15 décembre 2005 à 23:40
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum