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:
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042813563050.png)
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/
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042813563036.png)
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
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042813563016.png)
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
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042813563018.png)
Führen Sie nun den folgenden Befehl aus, um Ihre RPM-Installation zu überprüfen.
$ rpm -qa | grep test-application-1.0
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042813563045.png)
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.