Comment créer un package GNU Hello World RPM à Fedora

Comment créer un package GNU Hello World RPM à Fedora

RPM (un acronyme récursif pour RPM Package Manager) est un système de gestion des packages gratuite et open-source pour Linux. Bien qu'il ait été créé à l'origine pour une utilisation dans Chapeau rouge Linux, Maintenant, il est utilisé dans de nombreuses distributions Linux telles que Centos, Feutre, et Ouverte. Il est important de noter que le nom RPM fait référence au programme de gestionnaire de packages et au .RPM est un format de fichier.

Dans cet article, nous expliquerons la rédaction de fichiers RPM, montrant comment créer facilement une simple source et des packages de logiciels binaires, par exemple, GNU "Hello World" Package de troisième rpm dans Fedora Linux distribution. Nous supposons que vous avez une compréhension de base des packages RPM préfabriqués et avec le processus de construction de logiciels open source gratuit.

Installer des outils de développement dans Fedora

Commençons par mettre en place l'environnement de développement dans Fedora Linux En exécutant la commande suivante pour installer les outils nécessaires pour construire des RPM.

$ sudo dnf installer fedora-packager @ development-tools 
Installer des outils de développement dans Fedora

Ensuite, ajoutez votre compte non privilégié au 'faux'groupe comme suit (remplacer Tecmint avec votre nom d'utilisateur réel). Cela vous permettra de tester la procédure de construction dans un chroot propre.

$ sudo usermod -a -g simule tecmint 

Maintenant, créez une construction de régime dans votre ~ / rpmbuild répertoire et vérifiez la construction en utilisant les commandes suivantes. Il affichera une liste de sous-répertoires, qui contient du code source de projet, des fichiers de configuration RPM et des packages binaires.

$ rpmdev-setuptree $ arbre ~ / rpmbuild / 
Créer un environnement de construction

Voici à quoi sert chaque répertoire:

  1. CONSTRUIRE - stocke divers% des répertoires de buildroot lorsque les packages sont construits.
  2. RPM - contiendra des RPM binaires dans les sous-répertoires de l'architecture.
  3. SOURCES - stocke les archives de source compressée et tous les correctifs, c'est là que la commande rpmbuild les recherchera.
  4. Spécifications - stocke les fichiers de spécifications.
  5. SRPMS - Stocke le RPM source au lieu d'un RPM binaire.

Construire un RPM «Hello World»

Dans cette étape, vous devez télécharger le code source (également appelé "en amont»Source) du projet Hello World que nous emballons, dans le ~ / rpmbuild / source Répertoire avec la commande wget suivante.

$ cd ~ / rpmbuild / sources $ wget http: // ftp.gnou.org / gnu / bonjour / bonjour-2.dix.le goudron.gz -p ~ / rpmbuild / sources 

Ensuite, configurons le package RPM à l'aide d'un .spécifier fichier (nommez-le Bonjour.spécifier dans ce cas) dans le ~ / rpmbuild / spécifications répertoire, en utilisant le rpmdev-newspec programme.

$ cd ~ / rpmbuild / specs $ rpmdev-newspec hello $ ls 
Créer un fichier Hello Spec

Puis ouvrez le Bonjour.spécifier Fichier en utilisant votre éditeur préféré.

$ vim bonjour.spécifier 

Le modèle par défaut doit ressembler à ceci:

Nom: Hello Version: Release: 1% ?DIST Résumé: Licence: URL: Source0: buildRequires: Nécessite:% Description% Prep% Autosetup% build% Configurer% Make_build% docs-here% changelog * mar 28 mai 2019 Aaron Kili 

Expliquons brièvement les paramètres par défaut dans un .spécifier déposer:

  • Nom - utilisé pour définir un nom pour le package.
  • Version - devrait refléter en amont.
  • Libérer - Nombres que vous travaillez dans Fedora.
  • Résumé - est une brève description en une ligne du package, la première lettre devrait être en maître.
  • Licence - Vérifiez l'état de la licence du logiciel en inspectant les fichiers source et / ou leurs fichiers de licence, et / ou en parlant aux auteurs.
  • URL - Spécifie la page d'accueil du progiciel.
  • Source0 - Spécifie les fichiers source. Il peut s'agir d'une URL directe ou d'un chemin du code source compressé du logiciel.
  • Raccourcissement - Spécifie les dépendances nécessaires pour créer le logiciel.
  • A besoin - Spécifie les dépendances nécessaires pour exécuter le logiciel.
  • %préparation - est utilisé pour créer l'environnement pour construire le package RPM.
  • %construire - est utilisé pour compiler et construire les codes source.
  • %installer - Ceci est utilisé pour installer les programmes. Il répertorie les commandes à nécessaire pour copier le fichier résultant du processus de build au répertoire Buildroot.
  • %des dossiers - Cette section répertorie les fichiers fournis par le package, qui sera installé sur le système.
  • % Changelog - Devrait stocke les travaux sur la préparation du RPM, surtout s'il y a des correctifs de sécurité et de bogue inclus au-dessus de la source en amont de base. Il est automatiquement généré lors de la création du bonjour.fichier de spécification. Les données ChangeLog sont généralement affichées par rpm --changelog -Q .

Maintenant, modifiez votre .spécifier fichier et apporter des modifications comme indiqué.

Nom: Bonjour la version: 2.10 version: 1% ?DIST Résumé: Le programme "Hello World" de la licence GNU: GPLV3 + URL: http: // ftp.gnou.org / gnu /% nom source0: http: // ftp.gnou.org / gnu /% nom /% nom -% version.le goudron.GZ buildRequires: getText requier (post): les informations nécessitent (préun): info% Description Le package de programme "Hello World"% Prep% Autosetup% build% Configurer Make% make_build% installer% Make_install% find_lang% name rm - f% buildroot /% _ infodir / dir% post / sbin / install info% _ infodir /% name.info% _ infodir / dir || :% préun si [1 $ = 0]; alors / sbin / install-info --delete% _ infodir /% name.info% _ infodir / dir || : fi% files -f% nom.Lang% _ mandir / man1 / bonjour.1.*% _ infodir / bonjour.Info.*% _ bindir / Hello% doc auteurs de modifications modifiées de la modique merci todo% licence copier% changelog * mar 28 mai 2019 Aaron kili 

Vous remarquerez que nous avons utilisé de nouveaux paramètres dans le fichier ci-dessus qui n'ont pas été expliqués. Ceux-ci sont appelés macros, Utilisé pour créer des invocations système définies par RPM pour définir des chemins d'installation pour les packages. Par conséquent, il est généralement préférable de ne pas coder dur ces chemins dans les fichiers de spécification, mais utilisez les mêmes macros pour la cohérence.

Voici les macros de construction et de répertoires RPM avec leurs définitions et valeurs par défaut:

  • % make_build - est utilisé dans le %construire Section du fichier de spécifications, il exécute la commande make.
  • %nom - définit le package ou le nom du répertoire.
  • % buildroot - % _ buildrootdir /% nom -% version -% release.% _ arch, identique à $ buildroot
  • % _ infodir - % _ datarootdir / info, par défaut: / usr / share / info
  • % _ mandir - % _ datarootdir / man, par défaut: / usr / share / man
  • % _ bindir - % _ exec_prefix / bin, par défaut: / usr / bin

Notez que vous pouvez trouver les valeurs pour ces macros dans le / usr / lib / rpm / plateforme / * / macros ou reportez-vous aux directives d'emballage: macros RPM.

Construire le package RPM

Pour construire les packages source, binaire et de débogage, exécutez la commande rpmbuild suivante.

$ rpmbuild -ba bonjour.spécifier 

Après le processus de construction, les régimes source et les réglages binaires seront créés dans le … / Srpms / et … / RPMS / répertoires respectivement. Vous pouvez utiliser le programme RPMLINT pour vérifier et vous assurer que le fichier de spécifications et les fichiers RPM créés sont conformes aux règles de conception RPM:

$ rpmlint Bonjour.spec… / srpms / bonjour *… / rpms / * / bonjour * 
Vérifiez les packages pour les erreurs

S'il y a des erreurs comme indiqué dans la capture d'écran ci-dessus, réparez-les avant de pouvoir continuer.

Enfin et surtout, utilisez programme simulé Pour vérifier que la construction du package réussira dans l'environnement de construction Fedora restreint.

$ mock --verbose… / srpms / hello-2.10-1.FC29.SRC.RPM 
Vérifier la construction du package RPM

Pour plus d'informations, consultez la documentation Fedora: Création de packages RPM.

C'est tout! Dans cet article, nous avons expliqué comment intensifier votre système Fedora pour créer une source simple et un logiciel binaire. Nous avons également montré comment créer un package RPM Hello Word Gun Hello. Utilisez le formulaire de rétroaction ci-dessous pour nous joindre pour toute question ou commentaire.