# CENTOS : Créer un RPM simple {{INLINETOC}} **RPM** (**R**edHat **P**ackage **M**anager) 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 : - La création du répertoire **/etc/mydumpadmin** avec les droit 0755 - "L'installation" dans celui ci du fichier **credentials.txt** avec les droits 0600 (lecture/ecriture pour propriétaire seulement) - "L'installation" dans celui ci du script **mysql-dump.sh** avec les droits d'exécution 0755 - "L'installation" dans celui ci du fichier **README.md** avec les droits 0644 (lecture/ecriture pour propriétaire seulement, lecture pour tout le monde) - "L'installation" dans celui ci du fichier **settings.conf** avec les droits 0644 (lecture/ecriture pour propriétaire seulement, lecture pour tout le monde) # Préparation de l'environnement de build ## Installation des packages requis Installer les packages requis pour créer des fichiers rpm. $ yum install rpm-build rpmdevtools ## La structure de répertoire 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} ## Créer le fichier .rpmmacros !!!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. # Création du RPM ## Copier les fichiers sous le répertoire SOURCES 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 SPEC 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. ## Construire le RPM 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