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ů.