Packaging

Le packa­ging per­met la construc­tion de paquet, notam­ment pour les plus connus tel que le for­mat .rpm ou .deb


Jargon

FHS: File­Sys­tem Hie­rar­chy Stan­dard
arch
: Archi­tec­ture du pro­ces­seur
Buil­dArch: i586; x86_64; noarch
Buil­dRe­quires: Fichier de spé­ci­fi­ca­tion conte­nant les mots clefs pour des autres paquets néces­saires pour construire le paquet que l’on sou­haite.
Depen­den­cies: Paquets pré­re­quis (Requires)
tar­ball: Archive conte­nant les sources
SRPM: Paquet source qui contient les sources + patches + fichier .spec
sug­gestes: Fichier de spé­ci­fi­ca­tion content les mots clefs pour dési­gner d’autre paquet qui sont sug­gé­rés d’être ins­tal­lé avec ce paquet


Code Interprété

Il existe plu­sieurs lan­gages inter­pré­tés, tel que le bash ou le python qui n’est pas com­pi­lé sur la machine. Cela veut dire que leur code est exé­cu­té étape par étape ou dans une machine vir­tuelle. Les logi­ciels entiè­re­ment écris en code inter­pré­té ne pos­sède pas d’ar­chi­tec­ture, cela veut dire qu’ils auront la valeur noarch dans leurs noms.
Les lan­gages inter­pré­tés sont soit du:
–>“Raw-Inter­pre­ted” qu’il n’a pas besoin d’être com­pi­lé, il est direc­te­ment exé­cu­té par l’interpréteur
–>“Byte-com­pi­led” à besoin d’être com­pi­lé mais est exé­cu­té par une machine vir­tuelle

Construction des logiciels depuis les sources

Pour les logi­ciels écris en lan­gage com­pi­lé, le code source passe par un pro­ces­sus de construc­tion, pro­dui­sant donc du code machine. Ce pro­ces­sus de construc­tion est appe­lé com­pi­la­tion.


Arborescence de construction

  • ~/rpmbuild/BUILD : dos­sier où se fait la com­pi­la­tion des sources.
  • ~/rpmbuild/RPMS : contient les réper­toires, un par archi­tec­ture, qui contien­dront les paque­tages binaires géné­rés.
  • ~/rpmbuild/RPMS/i586 : le réper­toire où seront sto­ckés les paque­tages binaires créés pour les pro­ces­seurs i586.
  • ~/rpmbuild/RPMS/x86_64 : le réper­toire où seront sto­ckés les paque­tages binaires créés pour les pro­ces­seurs X86_64.
  • ~/rpmbuild/RPMS/noarch : le réper­toire où seront sto­ckés les paque­tages binaires noarch (c’est-à-dire indé­pen­dants de l’ar­chi­tec­ture du pro­ces­seur). géné­rés. Ndla : c’est sou­vent le cas des appli­ca­tions écrites dans des lan­gages inter­pré­tés (php,perl,python,ruby…).
  • ~/rpmbuild/SOURCES : contient les fichiers sources (par exemple mon_paquetage.tar.bz2 ).
  • ~/rpmbuild/SPECS: contient les fameux fichiers spec que nous devons écrire.
  • ~/rpmbuild/SRPMS : RPM sources après la construc­tion.
  • ~/rpmbuild/tmp : dos­sier tem­po­raire de tra­vail pour RPM.

Voir la contenance d’un RPM

Pour récu­pé­rer les infor­ma­tions d’un paquet:
–> rpm ‑qi <nom_du_paquet>
q pour quer­ry
i pour infor­ma­tions

Pour récu­pé­rer les dépen­dances:
–> rpm ‑qR <nom_du_paquet>
q pour quer­ry
R pour requires

Pour récu­pé­rer tous les fichiers que contient le paquet
–> rpm ‑ql
q pour quer­ry
l pour list


Le fichier .spec

Les dif­fé­rentes valeurs tel que :
%{_tmppath} –> Ren­voi la valeur /var/tmp
%{name} –> Ren­voi le name ren­sei­gné dans la sec­tion
%{ver­sion}

sont appe­lées ” Macros “
Si vous tom­bez sur une macro que vous ne connais­sez pas, vous pou­vez la com­prendre en uti­li­sant:

rpm --eval %{_tmppath}
La console ren­voie le résul­tat /var/tmp

Les dif­fé­rentes entêtes:

%des­crip­tion est une des­crip­tion longue et com­plète du logi­ciel

%prep

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.