RPM , Originariamente un gestore di pacchetti Red Hat , è un sistema di gestione dei pacchetti gratuito e open source creato per l'uso in Red Hat Linux. Tuttavia, RPM è utilizzato in molte distribuzioni Linux come CentOS , Fedora , Oracle Linux . Un pacchetto RPM viene fornito con un'estensione .rpm
.
A volte puoi accedere ai file del codice sorgente ma potresti non avere un pacchetto RPM disponibile da installare nel tuo sistema. In questo scenario, puoi compilare il codice sorgente e installare un'applicazione oppure creare un pacchetto RPM dal codice sorgente e utilizzare un file RPM per installare l'applicazione nel tuo sistema.
In questo articolo impareremo come creare pacchetti RPM dal codice sorgente di un'applicazione.
Installa il pacchetto rpm-build
Per creare pacchetti rpm, devi installare rpmbuild pacchetto con il seguente comando.
$ sudo yum install rpm-build
Dopo l'installazione, verifica la versione di rpmbuild utilizzando il seguente comando:
$ sudo rpmbuild --version
Otterrai un output simile a:

Crea struttura di directory
Potrebbe essere necessario creare le directory necessarie per rpmbuild per mantenere il file sorgente nella directory corretta prima che rpmbuild si lamenti di directory mancanti, è meglio creare queste directory manualmente.
$ sudo mkdir {~/rpmbuild,~/rpmbuild/BUILD,~/rpmbuild/BUILDROOT,~/rpmbuild/RPMS,~/rpmbuild/SOURCES,~/rpmbuild/SPECS,~/rpmbuild/SRPMS}
Puoi verificare la struttura della directory usando il comando tree.
$ tree rpmbuild/

Scarica il file Tar di origine
Ora dovrai scaricare il file del codice sorgente per il pacchetto in cui desideri creare un file rpm. I passaggi sono simili alla creazione di RPM per qualsiasi altra applicazione. Devi ottenere il codice sorgente dell'applicazione per RPM che creerai.
Vai a "FONTI ” e scaricare il codice sorgente dell'applicazione. In questo esempio creerò il mio campione per creare un file rpm.
$ cd rpmbuild/SOURCES $ sudo wget https://github.com/apache/httpd/archive/2.4.28.tar.gz%20-O%20httpd-2..4.28.tar.gz

Crea il file SPEC
Nella SPECIFICA vengono definiti il file, le istruzioni e le informazioni necessarie per costruire un pacchetto rpm. Una SPECIFICA il file ha l'estensione del file .spec
e contiene le dipendenze di build e le dipendenze di runtime. Le dipendenze di build sono il software necessario per compilare il programma che vogliamo creare un pacchetto RPM e le dipendenze di build sono le librerie necessarie per il corretto funzionamento del programma.
Un file SPEC è composto da due macro sezioni e sono Preambolo e Corpo . In queste macro sezioni possono essere definite diverse istruzioni.
Il preambolo la sezione può contenere le seguenti istruzioni:
Name: Name of the package Version: Version of the package URL: The URL of the application Release: Release version of the package License: License used for the package Requires: Dependencies needed to run the software
Il corpo contiene le seguenti istruzioni:
%description: Description of the software package %prep: Command needed to prepare source code. %files: List of the files received from the package
Ora crea un file SPEC e salvalo nella directory rpmbuild/SPECS . In questo esempio, ho creato un test-application.spec file di esempio per creare un test-application-1.0 pacchetto rpm.
$ cd rpmbuild $ cd SPECS $ sudo vi test-application.spec
Incolla i seguenti contenuti e modificali secondo le tue esigenze.
Name: test-application Version: 1.0 Release: 1%{?dist} Summary: Test application script Group: Miscellaneous License: License text Source0: test-application-1.0.tar.gz BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description This is test application %prep %setup -q %build # %configure # make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT # make install DESTDIR=$RPM_BUILD_ROOT install -d -m 0755 $RPM_BUILD_ROOT/opt/test-application install -m 0755 HelloWorld.sh $RPM_BUILD_ROOT/opt/test-application/test-application-1.0.sh %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) # %doc /opt/test-application/test-application-1.0.sh %changelog
Salva il file ed esci.
Crea e installa un pacchetto RPM
Una volta che la SPEC è stato creato, compila il pacchetto rpm con rpmbuild comando.
$ sudo rpmbuild -ba rpmbuild/SPECS/test-application.spec
Supponendo che tu non abbia riscontrato alcun errore, i file rpm verranno creati in RPMS/noarch directory pronta per l'installazione. Per installare il file RPM creato, eseguire il comando seguente.
$ rpm -ivh rpmbuild/RPMS/noarch/test-application-1.0-1.el7.noarch.rpm

Ora per verificare la tua installazione RPM, esegui il seguente comando.
$ rpm -qa | grep test-application-1.0

Per disinstallare il pacchetto RPM, eseguire il comando seguente:
$ yum remove <rpm-package-name>
In questo esempio, ho rimosso test-application-1.0 pacchetto come:
$ sudo yum remove test-application-1.0-1.el7.noarch
Conclusione
In questo articolo, hai imparato come creare pacchetti RPM usando tarball. Inoltre, hai un'idea sulla creazione di file SPEC, l'installazione di pacchetti RPM e la rimozione di pacchetti RPM installati.