GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare un pacchetto RPM da un Tarball

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.


Linux
  1. Come creare un pacchetto RPM Linux

  2. Come creare USB avviabile Linux dalla riga di comando di Linux

  3. Come disinstallare neovim da Ubuntu

  4. Come disinstallare i plugin rhythmbox da Ubuntu

  5. Come disinstallare Steam da Ubuntu

Come installare RPM su CentOS

Come creare un montaggio da immagini in Linux

Come creare directory da un file di testo in Linux

Come creare una scatola vagabondo da una scatola esistente

Come creare un video da immagini in Linux

Come creare un pacchetto in WHM?