Packaging

Le packaging permet la construction de paquet, notamment pour les plus connus tel que le format .rpm ou .deb


Jargon

FHS: FileSystem Hierarchy Standard
arch
: Architecture du processeur
BuildArch: i586; x86_64; noarch
BuildRequires: Fichier de spécification contenant les mots clefs pour des autres paquets nécessaires pour construire le paquet que l’on souhaite.
Dependencies: Paquets prérequis (Requires)
tarball: Archive contenant les sources
SRPM: Paquet source qui contient les sources + patches + fichier .spec
suggestes: Fichier de spécification content les mots clefs pour désigner d’autre paquet qui sont suggérés d’être installé avec ce paquet


Code Interprété

Il existe plusieurs langages interprétés, tel que le bash ou le python qui n’est pas compilé sur la machine. Cela veut dire que leur code est exécuté étape par étape ou dans une machine virtuelle. Les logiciels entièrement écris en code interprété ne possède pas d’architecture, cela veut dire qu’ils auront la valeur noarch dans leurs noms.
Les langages interprétés sont soit du:
–> »Raw-Interpreted » qu’il n’a pas besoin d’être compilé, il est directement exécuté par l’interpréteur
–> »Byte-compiled » à besoin d’être compilé mais est exécuté par une machine virtuelle

Construction des logiciels depuis les sources

Pour les logiciels écris en langage compilé, le code source passe par un processus de construction, produisant donc du code machine. Ce processus de construction est appelé compilation.


Arborescence de construction

  • ~/rpmbuild/BUILD : dossier où se fait la compilation des sources.
  • ~/rpmbuild/RPMS : contient les répertoires, un par architecture, qui contiendront les paquetages binaires générés.
  • ~/rpmbuild/RPMS/i586 : le répertoire où seront stockés les paquetages binaires créés pour les processeurs i586.
  • ~/rpmbuild/RPMS/x86_64 : le répertoire où seront stockés les paquetages binaires créés pour les processeurs X86_64.
  • ~/rpmbuild/RPMS/noarch : le répertoire où seront stockés les paquetages binaires noarch (c’est-à-dire indépendants de l’architecture du processeur). générés. Ndla : c’est souvent le cas des applications écrites dans des langages interpré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 construction.
  • ~/rpmbuild/tmp : dossier temporaire de travail pour RPM.

Voir la contenance d’un RPM

Pour récupérer les informations d’un paquet:
–> rpm -qi <nom_du_paquet>
q pour querry
i pour informations

Pour récupérer les dépendances:
–> rpm -qR <nom_du_paquet>
q pour querry
R pour requires

Pour récupérer tous les fichiers que contient le paquet
–> rpm -ql
q pour querry
l pour list


Le fichier .spec

Les différentes valeurs tel que :
%{_tmppath} –> Renvoi la valeur /var/tmp
%{name} –> Renvoi le name renseigné dans la section
%{version}

sont appelées  » Macros « 
Si vous tombez sur une macro que vous ne connaissez pas, vous pouvez la comprendre en utilisant:

rpm --eval %{_tmppath}
La console renvoie le résultat /var/tmp

Les différentes entêtes:

%description est une description longue et complète du logiciel

%prep

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

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