RPM (RedHat Package Manager) est un système de gestion de paquets destiné aux systèmes RHEL.
rpmbuild -b<stage> options file1.spec … fileN.spec
On peut indiquer un ou plusieurs fichiers .spec
<stage> | Libellé |
---|---|
p | rpmbuild -bp — Execute la section %prep |
c | rpmbuild -bc — Execute les sections %prep, %build |
i | rpmbuild -bi — Execute les sections %prep, %build, %install, %check |
b | rpmbuild -bb — Execute les sections %prep, %build, %install, %check, package (bin) |
a | rpmbuild -ba — Execute les sections %prep, %build, %install, %check, package (bin, src) |
l | rpmbuild -bl — Vérifie les listes de la section %files |
Options | Libellé |
---|---|
–short-circuit | Forcer la compilation à démarrer à une étape particulière (-bc, -bi uniquement) |
–test | Créer, enregistrer des scripts de construction pour révision |
–clean | Nettoyer après la construction |
–sign | Ajoute une signature numérique |
–buildroot <root> | Exécute %install en utilisant <root> en tant que racine |
–buildroot <path> | Exécute %install en utilisant <path> en tant que racine |
–buildarch <arch> | Effectue la construction pour l'architecture <arch> |
–buildos <os> | Effectue la construction du système d'exploitation <os> |
–timecheck <secs> | Affiche un avertissement si les fichiers sont anciens (si l'âge des fichiers est supérieur à <secondess> |
-vv | Affiche les informations de débogage |
–quiet | Produire le plus petit résultat possible |
–rcfile <rcfile> | Définit le fichier rpmrc alternatif sur <rcfile> |
L'option –short-circuit indique à la commande rpmbuild de démarrer à un emplacement particulier de la construction. Plutôt que de suivre toutes les étapes jusqu'à l'étape de construction demandée,
Cela fonctionne uniquement avec les options -bc et -bi, ainsi que les options -tc et -ti.
Par exemple, si on exécute la commande rpmbuild -bc pour arrêter après la section %build, on peut utiliser l'option –short-circuit pour redémarrer la construction dans la section %build. Si on rencontre un problème dans la section %build et qu'on vous le corrige, on peut redémarrer la génération dans la section %build plutôt que d'extraire à nouveau toutes les sources.
Cette option est particulièrement utile lorsqu'on debogue une compilation d'un package. Sans l'option –short-circuit, on passerait probablement beaucoup de temps à recompiler le code déjà compilé.
Lors du développement normal d'un package RPM, exécuter chaque section de construction, corriger les erreurs et redémarrer là où ou on a détecté le problème. Ce cycle sera déroulé plusieurs fois avant que le RPM ne fonctionne enfin correctement.
Ne jamais distribuer de paquet créer après un nombre de tours conséquent avec l'option –short-circuit. Au lieu de cela, une fois que tout fonctionne, repartir de zéro et reconstruire le RPM. Ceci permet d'éviter tout problème avec un RPM partiellement créé.
Les dépendances permettent à un constructeur de packages d'exiger que d'autres packages ou fonctionnalités soient installés avant ou en même temps. RPM s'assure que les dépendances sont satisfaites chaque fois que les packages sont installés, effacés ou mis à niveau.
Les macros disponibles:
si elles existent, sont développées sous la forme de programmes exécutables. Pour chaque paquet, le programme reçoit le fichier manifeste glob sur stdin et renvoie des dépendances sur stdout.
La configuration rpm par défaut ne contient que __find_provides /usr/lib/rpm/find-provides __find_requires /usr/lib/rpm/find-requires qui peut être remplacé (ou même indéfini) dans un fichier de spécification.
Désactiver la recherche de dépendances
%define __find_provides %{nil} %define __find_requires %{nil} %define _use_internal_dependency_generator 0
La vérification post-installation des fichiers installés est déterminée par trois variables:
Chacune pouvant être examinée avec rpm –eval %var, par exemple :
rpm --eval %__os_install_post /usr/lib/rpm/brp-compress /usr/lib/rpm/brp-strip /usr/bin/strip /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
Permet de détecter les erreurs RPATH (chemins utilisés au moment de l' exécution, codés en dur dans un fichier exécutable ou une bibliothèque) et provoque un échec rpmbuild. Pour ignorer ces erreurs, on peut utiliser la variable d'environnement '$QA_RPATHS' qui est un masque permettant les valeurs suivantes:
Pour ignorer les RPATH standard et vides, exécutez rpmbuild comme ceci
$QA_RPATHS=$[0x0001|0x0010] rpmbuild my-package.src.rpm
Pour vérifier les fichiers existants, définir $RPM_BUILD_ROOT et exécuter check-rpaths comme ceci
$RPM_BUILD_ROOT=<répertoire root>/usr/lib/rpm/check-rpaths