GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erstellen Sie ein RPM-Paket aus einem Tarball

Drehzahl , Ursprünglich ein Red Hat Package Manager , ist ein kostenloses Open-Source-Paketverwaltungssystem, das für die Verwendung in Red Hat Linux entwickelt wurde. Allerdings RPM wird in vielen Linux-Distributionen wie CentOS verwendet , Fedora , Oracle Linux . Ein RPM-Paket enthält die Erweiterung .rpm .

Manchmal können Sie auf Quellcodedateien zugreifen, aber Sie haben möglicherweise kein RPM-Paket zur Installation auf Ihrem System verfügbar. In diesem Szenario können Sie entweder den Quellcode kompilieren und eine Anwendung installieren oder ein RPM-Paket aus dem Quellcode erstellen und eine RPM-Datei verwenden, um die Anwendung in Ihrem System zu installieren.

In diesem Artikel lernen wir, wie man RPM-Pakete aus dem Quellcode einer Anwendung erstellt.

Installieren Sie das rpm-build-Paket

Um RPM-Pakete zu erstellen, müssen Sie rpmbuild installieren Paket mit dem folgenden Befehl.

$ sudo yum install rpm-build

Überprüfen Sie nach der Installation die rpmbuild-Version mit dem folgenden Befehl:

$ sudo rpmbuild --version

Sie erhalten eine Ausgabe ähnlich wie:

Verzeichnisstruktur erstellen

Möglicherweise müssen Sie Verzeichnisse erstellen, die für rpmbuild erforderlich sind, um Ihre Quelldatei im richtigen Verzeichnis zu halten, bevor sich rpmbuild über fehlende Verzeichnisse beschwert. Es ist besser, diese Verzeichnisse manuell zu erstellen.

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

Sie können die Verzeichnisstruktur mit dem Tree-Befehl überprüfen.

$ tree rpmbuild/

Quell-TAR-Datei herunterladen

Jetzt müssen Sie die Quellcodedatei für das Paket herunterladen, für das Sie eine RPM-Datei erstellen möchten. Die Schritte sind ähnlich wie beim Erstellen von RPM für jede andere Anwendung. Sie benötigen den Quellcode der Anwendung für RPM, die Sie erstellen werden.

Navigieren Sie zu den „QUELLEN ”-Verzeichnis und laden Sie den Quellcode der Anwendung herunter. In diesem Beispiel werde ich mein eigenes Beispiel erstellen, um eine RPM-Datei zu erstellen.

$ cd rpmbuild/SOURCES
$ sudo wget https://github.com/apache/httpd/archive/2.4.28.tar.gz%20-O%20httpd-2..4.28.tar.gz

Erstellen Sie die SPEC-Datei

In der SPEC -Datei sind Anweisungen und Informationen definiert, die zum Erstellen eines RPM-Pakets erforderlich sind. Eine SPEZ Datei hat die Dateiendung .spec und enthält Build- und Laufzeitabhängigkeiten. Build-Abhängigkeiten sind die Software, die erforderlich ist, um das Programm zu kompilieren, das wir zum Erstellen eines RPM-Pakets benötigen, und Build-Abhängigkeiten sind die Bibliotheken, die für die ordnungsgemäße Ausführung des Programms erforderlich sind.

Eine SPEC-Datei besteht aus zwei Makroabschnitten und sie sind Präambel und Körper . In diesen Makroabschnitten können verschiedene Anweisungen definiert werden.

Die Präambel Abschnitt kann die folgenden Anweisungen enthalten:

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

Der Körper Abschnitt enthält die folgenden Anweisungen:

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

Erstellen Sie nun eine SPEC-Datei und speichern Sie diese im Verzeichnis rpmbuild/SPECS . In diesem Beispiel habe ich eine test-application.spec erstellt Beispieldatei zum Erstellen einer test-application-1.0 rpm-Paket.

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

Fügen Sie die folgenden Inhalte ein und ändern Sie sie gemäß Ihren Anforderungen.

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

Speichern Sie die Datei und beenden Sie sie.

Erstellen und installieren Sie ein RPM-Paket

Einmal die SPEC Datei erstellt wurde, erstellen Sie das RPM-Paket mit rpmbuild Befehl.

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

Angenommen, Sie haben keinen Fehler festgestellt, werden RPM-Dateien unter RPMS/noarch erstellt Verzeichnis zur Installation bereit. Um die erstellte RPM-Datei zu installieren, führen Sie den folgenden Befehl aus.

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

Führen Sie nun den folgenden Befehl aus, um Ihre RPM-Installation zu überprüfen.

$ rpm -qa | grep test-application-1.0

Um das RPM-Paket zu deinstallieren, führen Sie den folgenden Befehl aus:

$ yum remove <rpm-package-name>

In diesem Beispiel habe ich die test-application-1.0 entfernt Paket als:

$ sudo yum remove test-application-1.0-1.el7.noarch
Schlussfolgerung

In diesem Artikel haben Sie gelernt, wie Sie RPM-Pakete mit Tarball erstellen. Außerdem haben Sie eine Vorstellung davon bekommen, wie SPEC-Dateien erstellt, RPM-Pakete installiert und installierte RPM-Pakete entfernt werden.


Linux
  1. So erstellen Sie einen bootfähigen Linux-USB-Stick über die Linux-Befehlszeile

  2. Wie erstelle ich ein einfaches Debian-Paket aus der Binärdatei?

  3. So deinstallieren Sie Neovim von Ubuntu

  4. So deinstallieren Sie Rhythmbox-Plugins von Ubuntu

  5. So deinstallieren Sie Steam von Ubuntu

So installieren Sie RPM auf CentOS

So erstellen Sie eine Montage aus Bildern unter Linux

So erstellen Sie Verzeichnisse aus einer Textdatei unter Linux

So erstellen Sie eine Vagrant-Box aus einer vorhandenen Box

So erstellen Sie ein Video aus Bildern unter Linux

Wie erstelle ich ein Paket in WHM?