GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer un package RPM à partir d'une archive tar

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.


Linux
  1. Comment empaqueter des applications Python pour Linux

  2. Comment répertorier les fichiers installés à partir d'un package RPM ou DEB sous Linux

  3. Comment créer un package RPM Linux

  4. Comment créer un paquet Debian simple à partir d'un binaire ?

  5. Comment vérifier l'intégrité du package rpm sous Linux

Comment installer RPM sur CentOS

Comment créer un montage à partir d'images sous Linux

Comment créer des répertoires à partir d'un fichier texte sous Linux

Comment créer une boîte vagabonde à partir d'une boîte existante

Comment créer une vidéo à partir d'images sous Linux

Comment créer un package dans WHM ?