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