RPM (Gestione pacchetti RedHat) è un sistema di gestione dei pacchetti per sistemi basati su RHEL. Potresti aver visto che tutti i pacchetti nei sistemi basati su Redhat hanno l'estensione .rpm . Questo tutorial ti aiuterà a creare RPM per il tuo script
Avevo creato uno script per eseguire il backup del database, oggi ho creato un file RPM di quello script, questo è il mio primo RPM creato in assoluto. Di seguito sono riportati i passaggi che seguo per farlo.
Passaggio 1:installazione dei pacchetti richiesti
Prima di tutto, devi installare i pacchetti richiesti sul tuo sistema per creare file rpm.
$ yum install rpm-build rpmdevtools
Fase 2:crea una struttura di directory
Vai alla home directory degli utenti e crea la struttura della directory richiesta usando il comando seguente.
$ rpmdev-setuptree
Il comando sopra creerà una struttura di directory come quella di seguito.
$ 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
Nel caso rpmdev-setuptree comando non è riuscito a creare la struttura, puoi crearla manualmente
$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}
Fase 3:crea un file rpmmacro
Ora crea il file ~/.rpmmacros, con i seguenti contenuti. Modifica i valori dei nomi evidenziati in rosso
~/.rpmmacros
%packagerYOUR_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
Fase 4 – Copia i file nella directory SOURCES
Copia tutti i tuoi file e la cartella degli script all'interno di ~/rpmbuild/SOURCES directory, che dobbiamo aggiungere nel file rpm. Per questo tutorial, ho utilizzato tutti i file creati nel nostro tutorial Advance Bash Script for 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
Crea un tarball del tuo codice.
$ tar czf mydumpadmin-1.0.tar.gz mydumpadmin-1
Fase 5:crea un file SPEC
Crea un file delle specifiche ~/rpmbuild/SPECS/mydumpadmin.spec utilizzando i contenuti sottostanti.
~/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 Kumar1.0.0 - Initial rpm release
Modifica il nome del pacchetto, il percorso dello script, il nome dell'archivio, la descrizione, ecc., in base alle tue esigenze.
Fase 6:crea RPM
Dopo aver completato i passaggi precedenti, costruiamo il tuo rpm eseguendo il comando seguente.
$ cd ~/rpmbuild $ rpmbuild -ba SPECS/mydumpadmin.spec
Dopo aver compilato correttamente, verrà creato un file rpm come ~/rpmbuild/RPMS/noarch/mydumpadmin-1-0.noarch.rpm
Installa il tuo rpm usando il comando seguente. Dopo il controllo dell'installazione, i file vengono installati correttamente nella posizione definita.
$ rpm -ivh mydumpadmin-1-0.noarch.rpm
Grazie per aver utilizzato questo articolo. Spero che i passaggi precedenti ti aiutino a creare il tuo rpm.