User Tools

Site Tools


centos:rpmbuild-exemle

CENTOS : Créer un RPM simple

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 :

  • 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
centos/rpmbuild-exemle.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1