GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment créer un RPM pour votre propre script dans CentOS/RedHat

RPM (gestionnaire de paquets RedHat) est un système de gestion de paquets pour les systèmes basés sur RHEL. Vous avez peut-être vu que tous les packages des systèmes basés sur Redhat ont l'extension .rpm . Ce tutoriel vous aidera à créer des RPM pour votre propre script

J'avais créé un script pour effectuer une sauvegarde de la base de données. Aujourd'hui, j'ai créé un fichier RPM de ce script. Il s'agit de mon premier RPM créé. Voici les étapes que je suis pour le faire.

Étape 1 - Installer les packages requis

Tout d'abord, vous devez installer les packages requis sur votre système pour créer des fichiers rpm.

$ yum install rpm-build rpmdevtools

Étape 2 - Créer une structure de répertoire

Accédez au répertoire d'accueil des utilisateurs et créez la structure de répertoires 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 Oct 25 03:09 BUILD
drwxr-xr-x 2 root root 6 Oct 25 03:09 RPMS
drwxr-xr-x 2 root root 6 Oct 25 03:09 SOURCES
drwxr-xr-x 2 root root 6 Oct 25 03:09 SPECS
drwxr-xr-x 2 root root 6 Oct 25 03:09 SRPMS

Dans le cas rpmdev-setuptree la commande n'a pas réussi à créer la structure, vous pouvez la créer manuellement

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}

Étape 3 - Créer un fichier rpmmacro

Créez maintenant le fichier ~/.rpmmacros, avec le contenu suivant. Modifier les valeurs des noms surlignés en rouge

~/.rpmmacros

%packager YOUR_NAME

%_topdir %(echo $HOME)/rpmbuild

%_smp_mflags %( \
    [ -z "$RPM_BUILD_NCPUS" ] \\\
        && RPM_BUILD_NCPUS="`/usr/bin/nproc 2>/dev/null || \\\
                             /usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
    if [ "$RPM_BUILD_NCPUS" -gt 16 ]; then \\\
        echo "-j16"; \\\
    elif [ "$RPM_BUILD_NCPUS" -gt 3 ]; then \\\
        echo "-j$RPM_BUILD_NCPUS"; \\\
    else \\\
        echo "-j3"; \\\
    fi )

%__arch_install_post \
    [ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \
    case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \
    /usr/lib/rpm/check-buildroot

Étape 4 - Copier les fichiers sous le répertoire SOURCES

Copiez tous vos dossiers de fichiers et de scripts dans ~/rpmbuild/SOURCES répertoire, que nous devons ajouter dans le fichier rpm. Pour ce tutoriel, j'ai utilisé tous les fichiers créés dans notre tutoriel Advance Bash Script pour MySQL.

$ cd ~/rpmbuild/SOURCES
$ ls -l mydumpadmin-1

-rw-r--r-- 1 root root  125 Oct 25 03:54 credentials.txt
-rw-r--r-- 1 root root 4693 Oct 25 03:54 mysql-dump.sh
-rw-r--r-- 1 root root 1008 Oct 25 03:54 README.md
-rw-r--r-- 1 root root 3445 Oct 25 03:54 settings.conf

Créez une archive tar de votre code.

$ tar czf mydumpadmin-1.0.tar.gz mydumpadmin-1

Étape 5 - Créer un fichier SPEC

Créez 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

Modifiez le nom du package, le chemin du script, le nom de l'archive, la description, etc., selon vos besoins.

Étape 6 :Créer un RPM

Après avoir terminé les étapes ci-dessus, construisons votre rpm en exécutant la commande suivante.

$ cd ~/rpmbuild
$ rpmbuild -ba SPECS/mydumpadmin.spec

Après une construction réussie, un fichier rpm sera créé comme ~/rpmbuild/RPMS/noarch/mydumpadmin-1-0.noarch.rpm

Installez votre rpm en utilisant la commande ci-dessous. Après la vérification de l'installation, les fichiers sont correctement installés à l'emplacement défini.

$ rpm -ivh mydumpadmin-1-0.noarch.rpm

Merci d'avoir utilisé cet article. J'espère que les étapes ci-dessus vous aideront à créer votre propre RPM.


Cent OS
  1. Comment réinitialiser votre mot de passe racine MySQL sur CentOS 6

  2. Comment créer un fichier Kickstart pour CentOS/Fedora/RedHat (RHEL)

  3. Comment configurer le référentiel YUM sous Linux/Centos/Redhat | YUM sous Linux/Centos/Redhat

  4. Comment installer Ntopng sur CentOS 6

  5. Comment installer Habari sur CentOS 7

Comment créer votre premier programme Java sur CentOS 8

Comment créer un utilisateur Sudo sur CentOS

Comment installer MariaDB sur CentOS 6

Comment installer MariaDB sur CentOS 7

Comment installer Moodle sur CentOS 7

Comment installer HHVM sur CentOS 6