GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit RPM balíček z Tarballu

RPM , původně Red Hat Package Manager , je bezplatný a open-source systém pro správu balíčků, který byl vytvořen pro použití v Red Hat Linuxu. Nicméně RPM se používá v mnoha distribucích Linuxu, jako je CentOS , Fedora , Oracle Linux . Balíček RPM je dodáván s příponou .rpm .

Někdy můžete přistupovat k souborům zdrojového kódu, ale možná nemáte k dispozici balíček RPM k instalaci do vašeho systému. V tomto scénáři můžete buď zkompilovat zdrojový kód a nainstalovat aplikaci, nebo sestavit balíček RPM ze zdrojového kódu a použít soubor RPM k instalaci aplikace do vašeho systému.

V tomto článku se naučíme, jak sestavit balíčky RPM ze zdrojového kódu aplikace.

Nainstalujte balíček rpm-build

Chcete-li sestavit balíčky rpm, musíte nainstalovat rpmbuild balíček s následujícím příkazem.

$ sudo yum install rpm-build

Po instalaci ověřte verzi rpmbuild pomocí následujícího příkazu:

$ sudo rpmbuild --version

Získáte výstup podobný jako:

Vytvořit adresářovou strukturu

Možná budete muset vytvořit adresáře potřebné pro rpmbuild, abyste uchovali váš zdrojový soubor ve správném adresáři, než bude rpmbuild stížnosti na chybějící adresáře, je lepší vytvořit tyto adresáře ručně.

$ sudo mkdir {~/rpmbuild,~/rpmbuild/BUILD,~/rpmbuild/BUILDROOT,~/rpmbuild/RPMS,~/rpmbuild/SOURCES,~/rpmbuild/SPECS,~/rpmbuild/SRPMS}

Adresářovou strukturu můžete ověřit pomocí příkazu tree.

$ tree rpmbuild/

Stáhněte si zdrojový soubor Tar

Nyní si budete muset stáhnout soubor zdrojového kódu pro balíček, ze kterého chcete vytvořit soubor rpm. Kroky jsou podobné jako při vytváření RPM pro jakoukoli jinou aplikaci. Potřebujete získat zdrojový kód aplikace pro RPM, kterou se chystáte sestavit.

Přejděte na „ZDROJE ” a stáhněte si zdrojový kód aplikace. V tomto příkladu vytvořím svůj vlastní vzorek pro vytvoření souboru 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

Vytvořte soubor SPEC

V SPEC jsou definovány instrukce a informace potřebné k sestavení rpm balíčku. SPEC soubor má příponu .spec a obsahuje závislosti sestavení a závislosti za běhu. Závislosti sestavení jsou software potřebný ke kompilaci programu, z něhož chceme vytvořit balíček RPM, a závislosti sestavení jsou knihovny potřebné pro správné fungování programu.

Soubor SPEC se skládá ze dvou sekcí makra a jsou to Preambule a Tělo . V těchto částech maker lze definovat různé instrukce.

Preambule sekce může obsahovat následující pokyny:

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

tělo část obsahuje následující pokyny:

%description: Description of the software package
%prep: Command needed to prepare source code.
%files: List of the files received from the package

Nyní vytvořte soubor SPEC a uložte jej do adresáře rpmbuild/SPECS . V tomto příkladu jsem vytvořil test-application.spec ukázkový soubor k vytvoření test-application-1.0 rpm balíček.

$ cd rpmbuild
$ cd SPECS
$ sudo vi test-application.spec

Vložte následující obsah a upravte jej podle svých požadavků.

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

Uložte soubor a ukončete.

Sestavení a instalace balíčku RPM

Jakmile bude SPEC soubor byl vytvořen, sestavte balíček rpm pomocí rpmbuild příkaz.

$ sudo rpmbuild -ba rpmbuild/SPECS/test-application.spec

Za předpokladu, že jste nenarazili na žádnou chybu, budou soubory rpm vytvořeny v RPMS/noarch adresář připravený k instalaci. Chcete-li nainstalovat vytvořený soubor RPM, spusťte následující příkaz.

$ rpm -ivh rpmbuild/RPMS/noarch/test-application-1.0-1.el7.noarch.rpm

Nyní pro ověření vaší instalace RPM spusťte následující příkaz.

$ rpm -qa | grep test-application-1.0

Chcete-li odinstalovat balíček RPM, spusťte následující příkaz:

$ yum remove <rpm-package-name>

V tomto příkladu jsem odstranil test-application-1.0 balíček jako:

$ sudo yum remove test-application-1.0-1.el7.noarch
Závěr

V tomto článku jste se dozvěděli, jak vytvořit balíčky RPM pomocí tarballu. Také máte představu o vytváření souborů SPEC, instalaci RPM balíčků a odstraňování nainstalovaných RPM balíčků.


Linux
  1. Jak zobrazit seznam souborů nainstalovaných z RPM nebo DEB balíčku v Linuxu

  2. Jak vytvořit jednoduchý balíček Debian z binárního kódu?

  3. Jak zkontrolovat integritu balíčku rpm v Linuxu

  1. Jak zabalit aplikace Python pro Linux

  2. Jak vytvořit balíček RPM pro Linux

  3. Jak vytvořit Linux bootovatelné USB z Linux Command-Line

  1. Jak vytvořit Vm od nuly s Virsh?

  2. Jak odinstalovat neovim z Ubuntu

  3. Jak odinstalovat pluginy rhythmbox z Ubuntu