GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come creare RPM per il tuo script in CentOS/RedHat

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

%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

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 Kumar  1.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.


Cent OS
  1. Come reimpostare la password di root MySQL su CentOS 6

  2. Come creare un file kickstart per CentOS/Fedora/RedHat (RHEL)

  3. Come configurare il repository YUM in Linux/Centos/Redhat | YUM in Linux/Centos/Redhat

  4. Come installare Ntopng su CentOS 6

  5. Come creare un sottodominio per il tuo sito web

Come creare il tuo primo programma Java su CentOS 8

Come creare un utente Sudo su CentOS

Come installare MariaDB su CentOS 6

Come installare MariaDB su CentOS 7

Come installare Moodle su CentOS 7

Come installare HHVM su CentOS 6