RPM (RedHat Package Manager) est un système de gestion de paquets destiné aux systèmes RHEL. Ce tutoriel décrit comment créer un RPM pour empaqueter un simple script.
L'exemple développé ici présente une installation assez simple qui illustre :
Installer les packages requis pour créer des fichiers rpm.
$ yum install rpm-build rpmdevtools
Dans le répertoire dédié au rpm, créer la structure de répertoire requise à l'aide de la commande ci-dessous.
$ rpmdev-setuptree
La commande ci-dessus créera une structure de répertoire comme ci-dessous.
$ ls -l rpmbuild drwxr-xr-x 2 root root 6 octobre 25 03:09 CONSTRUIRE drwxr-xr-x 2 root root 6 octobre 25 03:09 RPMS drwxr-xr-x 2 root root 6 octobre 25 03:09 SOURCES drwxr-xr-x 2 racine racine 6 octobre 25 03:09 drwxr-xr-x 2 root root 6 octobre 25 03:09 SRPMS
Si la commande rpmdev-setuptree ne parvient pas à créer la structure, on peut la créer manuellement.
$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}
!!!Attention!!! Toutes les macros définies dans ~/.rpmmacros remplacent les macros système.
%_topdir% (echo $HOME)/rpmbuild
Utilisation de la macro %_topdir pour définir le répertoire racine de l'environnement de construction de RPM dans /home/[utilisateur]/rpmbuild.
Copier tous vos fichiers et dossiers dans le répertoire ~ /rpmbuild/SOURCES, qui sera ajouté dans le fichier rpm.
$ cd ~/rpmbuild/SOURCES $ ls -l mydumpadmin-1 -rw-r - r-- 1 racine racine 125 25 octobre 03:54 credentials.txt -rw-r - r-- 1 racine racine 4693 Oct 25 03:54 mysql-dump.sh -rw-r - r-- 1 racine racine 1008 25 oct. 03:54 LISEZMOI.md -rw-r - r-- 1 racine racine 3445 25 octobre 03:54 settings.conf
Créer une archive du code.
$ tar czf mydumpadmin-1.0.tar.gz mydumpadmin-1
Créer un fichier de spécification ~/rpmbuild/SPECS/mydumpadmin.spec en utilisant le contenu ci-dessous.
~/rpmbuild/SPECS/mydumpadmin.spec Name: mydumpadmin Version: 1 Release: 0 Summary: An Advance Bash Script for MySQL Database Backup Group: TecAdmin BuildArch: noarch License: GPL URL: https://github.com/tecrahul/mydumpadmin.git Source0: mydumpadmin-1.0.tar.gz %description Write some description about your package here %prep %setup -q %build %install install -m 0755 -d $RPM_BUILD_ROOT/etc/mydumpadmin install -m 0600 credentials.txt $RPM_BUILD_ROOT/etc/mydumpadmin/credentials.txt install -m 0755 mysql-dump.sh $RPM_BUILD_ROOT/etc/mydumpadmin/mysql-dump.sh install -m 0644 README.md $RPM_BUILD_ROOT/etc/mydumpadmin/README.md install -m 0644 settings.conf $RPM_BUILD_ROOT/etc/mydumpadmin/settings.conf %files /etc/mydumpadmin /etc/mydumpadmin/credentials.txt /etc/mydumpadmin/mysql-dump.sh /etc/mydumpadmin/README.md /etc/mydumpadmin/settings.conf %changelog * Tue Oct 24 2017 Rahul Kumar 1.0.0 - Initial rpm release
Modifier le nom du package, le chemin du script, le nom de l’archive, la description, etc., selon vos besoins.
Après avoir terminé les étapes ci-dessus, construire le RPM en exécutant la commande suivante.
$ cd ~/rpmbuild $ rpmbuild -ba SPECS/mydumpadmin.spec
Une fois la construction réussie, un fichier rpm sera créé, tel que ~/rpmbuild/RPMS/noarch/mydumpadmin-1-0.noarch.rpm.
Installer le rpm en utilisant la commande ci-dessous. Après vérification de l'installation, les fichiers sont correctement installés dans l'emplacement défini.
$ rpm -ivh mydumpadmin-1-0.noarch.rpm