RPM , à l'origine un gestionnaire de packages Red Hat , est un système de gestion de paquets gratuit et open-source créé pour être utilisé dans Red Hat Linux. Cependant, RPM est utilisé dans de nombreuses distributions Linux telles que CentOS , Fédora , Oracle Linux . Un package RPM est livré avec une extension .rpm
.
Parfois, vous pouvez accéder aux fichiers de code source, mais vous ne disposez peut-être pas d'un package RPM à installer sur votre système. Dans ce scénario, vous pouvez soit compiler le code source et installer une application, soit créer un package RPM à partir du code source et utiliser un fichier RPM pour installer l'application sur votre système.
Dans cet article, nous allons apprendre à construire des packages RPM à partir du code source d'une application.
Installer le paquet rpm-build
Pour construire des packages rpm, vous devez installer le rpmbuild package avec la commande suivante.
$ sudo yum install rpm-build
Après l'installation, vérifiez la version de rpmbuild à l'aide de la commande suivante :
$ sudo rpmbuild --version
Vous obtiendrez une sortie similaire à :
Créer une structure de répertoire
Vous devrez peut-être créer les répertoires nécessaires à rpmbuild pour conserver votre fichier source dans le bon répertoire avant que rpmbuild ne se plaigne de répertoires manquants, il est préférable de créer ces répertoires manuellement.
$ sudo mkdir {~/rpmbuild,~/rpmbuild/BUILD,~/rpmbuild/BUILDROOT,~/rpmbuild/RPMS,~/rpmbuild/SOURCES,~/rpmbuild/SPECS,~/rpmbuild/SRPMS}
Vous pouvez vérifier la structure du répertoire à l'aide de la commande tree.
$ tree rpmbuild/
Télécharger le fichier tar source
Vous devrez maintenant télécharger le fichier de code source du package pour lequel vous souhaitez créer un fichier rpm. Les étapes sont similaires à la construction de RPM pour toute autre application. Vous devez obtenir le code source de l'application pour RPM que vous allez créer.
Accédez aux "SOURCES » et téléchargez le code source de l'application. Dans cet exemple, je vais créer mon propre exemple pour créer un fichier rpm.
$ cd rpmbuild/SOURCES $ sudo wget https://github.com/apache/httpd/archive/2.4.28.tar.gz%20-O%20httpd-2..4.28.tar.gz
Créer le fichier SPEC
Dans le SPEC fichier, les instructions et les informations requises pour construire un package rpm sont définies. Une SPEC le fichier a l'extension de fichier .spec
et contient des dépendances de construction et des dépendances d'exécution. Les dépendances de construction sont le logiciel requis pour compiler le programme que nous voulons créer un package RPM et les dépendances de construction sont les bibliothèques nécessaires au bon fonctionnement du programme.
Un fichier SPEC est composé de deux sections macro et elles sont Préambule et Corps . Dans ces sections macro, différentes instructions peuvent être définies.
Le préambule section peut contenir les instructions suivantes :
Name: Name of the package Version: Version of the package URL: The URL of the application Release: Release version of the package License: License used for the package Requires: Dependencies needed to run the software
Le corps contient les instructions suivantes :
%description: Description of the software package %prep: Command needed to prepare source code. %files: List of the files received from the package
Maintenant, créez un fichier SPEC et enregistrez-le dans le répertoire rpmbuild/SPECS . Dans cet exemple, j'ai créé un test-application.spec exemple de fichier pour créer un test-application-1.0 package rpm.
$ cd rpmbuild $ cd SPECS $ sudo vi test-application.spec
Collez le contenu suivant et modifiez-le selon vos besoins.
Name: test-application Version: 1.0 Release: 1%{?dist} Summary: Test application script Group: Miscellaneous License: License text Source0: test-application-1.0.tar.gz BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description This is test application %prep %setup -q %build # %configure # make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT # make install DESTDIR=$RPM_BUILD_ROOT install -d -m 0755 $RPM_BUILD_ROOT/opt/test-application install -m 0755 HelloWorld.sh $RPM_BUILD_ROOT/opt/test-application/test-application-1.0.sh %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) # %doc /opt/test-application/test-application-1.0.sh %changelog
Enregistrez le fichier et quittez.
Créer et installer un package RPM
Une fois la SPEC fichier a été créé, compilez le package rpm avec le rpmbuild commande.
$ sudo rpmbuild -ba rpmbuild/SPECS/test-application.spec
En supposant que vous n'avez rencontré aucune erreur, les fichiers rpm seront créés dans RPMS/noarch répertoire prêt pour l'installation. Pour installer le fichier RPM créé, exécutez la commande suivante.
$ rpm -ivh rpmbuild/RPMS/noarch/test-application-1.0-1.el7.noarch.rpm
Maintenant, pour vérifier votre installation RPM, exécutez la commande suivante.
$ rpm -qa | grep test-application-1.0
Pour désinstaller le package RPM, exécutez la commande suivante :
$ yum remove <rpm-package-name>
Dans cet exemple, j'ai supprimé le test-application-1.0 package en tant que :
$ sudo yum remove test-application-1.0-1.el7.noarch
Conclusion
Dans cet article, vous avez appris comment créer des packages RPM à l'aide de tarball. Vous avez également une idée de la création de fichiers SPEC, de l'installation de packages RPM et de la suppression de packages RPM installés.