NOM¶
rpmbuild – Construction de paquet(s) RPM
SYNOPSIS¶
rpmbuild -bÉTAPE
[options] FICHIER_SPÉC ...
rpmbuild -rÉTAPE
[options] PAQUET_SOURCE ...
rpmbuild -tÉTAPE
[options] ARCHIVE_TAR ...
rpmbuild {--rebuild|--recompile}
[options] PAQUET_SOURCE ...
DESCRIPTION¶
rpmbuild sert à construire des paquets logiciels au
format RPM, d’une manière automatique et
réitérable.
Un paquet consiste en une archive de fichiers et de
métadonnées utilisée pour installer et écraser
les fichiers d’archive. Les métadonnées comprennent des
scripts d’aide, des attributs de fichier et une information
descriptive du paquet.
Les paquets sont de deux sortes : les paquets binaires
utilisés pour encapsuler les logiciels à installer et les
paquets source contenant le code source et des recettes nécessaires
pour construire les paquets binaires.
OPÉRATIONS¶
-bÉTAPE
Construire ÉTAPE à partir
d’un fichier spec.
-rÉTAPE
Construire ÉTAPE à partir
d’un paquet source RPM.
-tÉTAPE
Construire
ÉTAPE à partir
d’une archive
tar(5).
--rebuild, --recompile
Alias de compatibilité pour -ra.
Les paquets sont construits en quatre phases : analyse,
construction, assemblage et nettoyage. Les deux phases centrales sont
elles-mêmes divisées en étapes, listées
ci-après et qui peuvent être réalisées
séparément. Construire une ÉTAPE signifie
exécuter toutes les étapes précédentes
jusqu’à celle indiquée incluse, sauf déclaration
contraire autre part.
Étapes d’assemblage¶
Les étapes d’assemblage produisent les paquets et
constituent la façon principale d’interagir avec
rpmbuild. Dans le doute, choisir une des suivantes.
a
Construire les paquets source et binaires. Ce
n’est pas réellement une étape, mais une combinaison des
actions b et s, avec la différence que les paquets
construits de cette façon intègrent un
« cookie » pour indiquer qu’ils proviennent
de la même construction. En cas de succès, le répertoire
de construction est supprimé.
b
Construire uniquement les paquets binaires. En cas de
succès, le répertoire de construction est supprimé.
r
Construire uniquement le paquet source, en
vérifiant les dépendances dynamiques de construction.
Exécuter les étapes %prep et
%generate_buildrequires avant la construction d’un paquet.
Consulter la section DÉPENDANCES DYNAMIQUES DE CONSTRUCTION pour
plus de détails.
s
Construire uniquement le paquet source. Aucune
étape de construction n’est exécutée.
Étapes de construction¶
Ces étapes de construction produisent des artefacts de
construction à empaqueter, classiquement à travers une
application de correctifs et une compilation des sources, et en installant
les binaires dans le buildroot. Ces étapes correspondent
généralement aux sections spec telles que %prep,
%build ou %install, mais certaines sont implicites.
Construire ces étapes séparément n’est
en général utile que pour l’empaquetage au format RPM
d’un nouveau logiciel ou en cas de problème. Elles sont
listées ci-après dans leur ordre d’exécution
avec leur section spec correspondante entre parenthèses
lorsque cela est approprié.
p (%prep)
Décompresser les sources et appliquer tout
correctif.
d (%generate_buildrequires)
Vérifier les dépendances dynamiques de
construction et construire le paquet buildreqs.nosrc.rpm si une
dépendance est manquante. Ne rien construire d’autre.
f (%conf)
Configurer les sources. Cela implique
généralement l’équivalent de
./configure.
c (%build)
Compiler les sources. Cela implique
généralement l’équivalent de make.
i (%install et %check)
Installer les binaires dans la racine de construction.
Cela implique généralement l’équivalent de make
install et make check.
l
Réaliser un « list
check » – la section %files du fichier
spec est développée en macros et des vérifications
sont faites pour chaque fichier existant. Cela nécessite une
construction précédente jusqu’à
l’étape %install.
ARGUMENTS¶
FICHIER_SPEC
Un fichier spec RPM.
PAQUET_SOURCE
Un paquet source RPM (avec une extension
.src.rpm)
ARCHIVE_TAR
Une archive
tar(5), facultativement
compressée. Pour être directement constructible avec
rpmbuild(1), une archive doit contenir un fichier
spec soit avec
le nom
Specfile, soit avec l’extension
.spec.
OPTIONS¶
--build-in-place
Construire à partir de sources
récupérées localement dans le répertoire de
travail actuel. L’arbre de construction est défini comme si
%setup était utilisé, mais
%builddir/%buildsubdir pointe vers le répertoire de
travail actuel. %prep est totalement ignoré.
--clean
Supprimer l’arbre de construction une fois les
paquets fabriqués (c’est le comportement par
défaut).
--nobuild
Ne pas exécuter d’étape de
construction. C’est utile pour le test de fichiers spec.
--nocheck
Ne pas exécuter l’étape de
construction %check même si elle est présente dans le
fichier spec.
--noclean
Ne pas exécuter l’étape de
construction %clean même si elle est présente dans le
fichier spec.
--nodebuginfo
Ne pas générer de paquets
debuginfo.
--nodeps
Ne pas vérifier les dépendances de
construction.
--noprep
Ne pas exécuter l’étape de
construction %prep même si elle est présente dans le
fichier spec. Cela suppose qu’il y a un autre rpmbuild
exécuté dans lequel %prep a déjà
été exécuté.
--rmsource
Supprimer les sources après la construction (cela
peut être utilisé de manière autonome, par exemple,
rpmbuild --rmsource toto.spec). Notez que par
définition, les fichiers NoSource et NoPatch ne sont pas
des sources et par conséquent ne sont pas affectés par cette
option.
--rmspec
Supprimer le fichier spec après la
construction (cela peut être utilisé de manière autonome,
par exemple, rpmbuild --rmspec toto.spec).
--rpmfcdebug
Afficher des informations de débogage sur la
classification de fichier et la génération de
dépendance.
--scm=SCM
Choisir le SCM à utiliser avec
%autosetup si aucun n’est défini dans le fichier
spec. Remarquez que cela n’autorise pas toutes les valeurs pour
SCM, par exemple, patch (valeur par défaut) et
gendiff, git ou quilt sont interchangeables avec tous les
autres correctifs et options déclarés dans la ligne %autosetup,
particulièrement l’option -pN.
--short-circuit
Aller directement à l’étape
indiquée (c’est-à-dire sauter toutes les étapes
conduisant à l’étape indiquée). Cela est seulement
autorisé pour les options -bc, -bi et -bb.
C’est utile seulement pour un test local. Les paquets construits de
cette façon seront marqués avec une dépendance impossible
de satisfaire pour empêcher leur utilisation accidentelle.
--with OPTION
Activer l’OPTION de configuration
spécifiée pour la construction.
--without OPTION
Désactiver l’OPTION de configuration
spécifiée pour la construction.
Consulter rpm-common(8) pour les options communes à
toutes les opérations.
DÉPENDANCES DYNAMIQUES DE CONSTRUCTION¶
Quand l’étape %generate_buildrequires est
exécutée et que certains des BuildRequires nouvellement
générés ne sont pas satisfaits, rpmbuild
crée un paquet source intermédiaire dans
buildreqs.nosrc.rpm qui possède les nouveaux
BuildRequires, et quitte avec le code de retour 11. Ce paquet
peut alors être utilisé à la place du paquet source
original pour résoudre et installer les dépendances de
construction manquantes de la manière habituelle, comme avec
dnf-builddep(8).
Plusieurs couches de dépendances dynamiques de construction
peuvent exister dans un fichier spec ; la présence de
BuildRequires spécifiques peut produire de nouveaux
BuildRequires lors de la prochaine construction avec le même
paquet source. La façon la plus simple de s’assurer que toutes
les dépendances dynamiques de construction sont satisfaites est
d’utiliser l’option -br, d’installer les
nouvelles dépendances du paquet buildreqs.nosrc.rpm et de
recommencer la procédure entière jusqu’à ce que
rpmbuild ne quitte plus avec le code 11.
Si l’option -br est couplée avec
l’option --nodeps, le code de retour 11 est toujours
renvoyé et le paquet buildreqs.nosrc.rpm est toujours
créé.
ENVIRONNEMENT¶
RPM_BUILD_NCPUS
Cette variable d’environnement permet
d’outrepasser l’autodétection du nombre de CPU pour
utiliser les sections
« parallélisées » de la
construction.
CODE DE RETOUR¶
En cas de succès, 0 est renvoyé, autrement,
un code d'échec différent de zéro est
renvoyé.
Les paquets avec une section %generate_buildrequires
renvoient un code 11 quand les dépendances dynamiques de
construction ne sont pas satisfaites.
EXEMPLES¶
rpmbuild --rebuild toto-1.0-1.src.rpm
Construire les paquets source et binaire à partir
du paquet source toto-1.0-1.src.rpm.
rpmbuild -bb --nocheck --with openssl toto.spec
Construire les paquets binaires à partir du
fichier toto.spec, en omettant l’étape %check si
présente et en activant la prise en charge de l’option de
construction openssl (en supposant qu’une soit indiquée
dans le fichier spec).
rpmbuild -ta toto-2.0.tar.gz
Construire les paquets source et binaire à partir
de l’archive compressée toto-2.0.tar.gz, en supposant que
l’archive contient un fichier spec valable (consulter
ARCHIVE_TAR pour plus de détails).
rpmbuild -bc toto.spec
Construire toto.spec jusqu’à
l’étape %build incluse, c’est-à-dire sans
produire réellement les paquets.
rpmbuild -bi --short-circuit toto.spec
Exécuter seulement l’étape
%install de toto.spec, en omettant toutes les étapes
précédentes. Cela suppose une exécution
précédente jusqu’à au moins l’étape
%build (voir l’exemple précédent). C’est
utile pour éviter des reconstructions complètes lors d’un
travail sur la section %files d’un paquet.
VOIR AUSSI¶
gendiff(1), popt(3), rpm(8),
rpm-common(8), rpmbuild-config(5), rpm2cpio(1),
rpmkeys(8), rpmspec(1), rpmsign(1),
rpm-setup-autosign(1), rpm-macros(7)
http://www.rpm.org/
TRADUCTION¶
La traduction française de cette page de manuel a
été créée par Jean-Paul Guillonneau
<guillonneau.jeanpaul@free.fr>
Cette traduction est une documentation libre ; veuillez
vous reporter à la
GNU General
Public License version 3 concernant les conditions de copie et de
distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page
de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.