|
|
| (7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| * Ein '''RPM-Paket''' ist ein Paketformat, das in Red Hat-basierten Linux-Distributionen wie Fedora und SUSE verwendet wird. | | *[[rpm Paket Basis]] (x) |
| * Um ein RPM-Paket zu erstellen, benötigen Sie die folgenden Komponenten: | | *[[rpm Paket erstellen Hello World]] (x) |
| * '''sudo -i'''
| | *[[RPM Paket erstellen aus einem Git Repository]] |
| * '''dnf install fedora-packager rpmdevtools gcc'''
| | *[[rpm Paket erstellen Apache2]] |
| | |
| = Anlegen der Entwicklungsumgebung =
| |
| * '''rpmdev-setuptree'''
| |
| * Dieser Befehl ist ein Shell-Skript, welches eine Ordnerstruktur im Homeverzeichnis des Benutzers anlegt
| |
| | |
| rpmbuild/
| |
| ├── BUILD
| |
| ├── BUILDROOT
| |
| ├── RPMS
| |
| ├── SOURCES
| |
| ├── SPECS
| |
| └── SRPMS
| |
| | |
| * Unter ''SOURCES'' liegt der Source-Code in der Form ''<paket-name>-<versions-nummer>.tar.gz''
| |
| * In ''SPECS'' gibt man zusätzliche Paketinformationen wie Paketname, Versionsnummer, Beschreibung, etc. in einer ''.spec''-Datei an.
| |
| * Der Name des komprimierten Programm-Codes sollte mit denen in der ''.spec''-Datei übereinstimmen.
| |
| * Nach dem Erstellen des Pakets liegt das ''.rpm''-Paket unter ''RPMS''
| |
| | |
| =Vorbereitung des Quellcodes=
| |
| ;Legen Sie den Quellcode Ihres Projekts im Verzeichnis SOURCES ab:
| |
| *cp /pfad/zum/quellcode.tar.gz SOURCES/
| |
| ;Hinweis: Stellen Sie sicher, dass sich Ihr Quellcode in einer tar.gz- oder tar.bz2-Datei befindet.
| |
| =Erstellen der SPEC-Datei=
| |
| *Eine SPEC-Datei enthält die Build-Anweisungen und Metadaten für das RPM-Paket.
| |
| ;Erstellen Sie eine neue SPEC-Datei im Verzeichnis SPECS mit einem Texteditor Ihrer Wahl (z. B. nano oder *nano SPECS/meinprojekt.spec
| |
| ;Füllen Sie die SPEC-Datei mit den entsprechenden Informationen aus. Hier ist ein Beispiel für den Inhalt einer SPEC-Datei:
| |
| <pre>
| |
| Name: meinprojekt
| |
| Version: 1.0
| |
| Release: 1%{?dist}
| |
| Summary: Eine kurze Beschreibung des Projekts
| |
| License: GPLv3+
| |
| URL: https://example.com
| |
| Source0: %{name}-%{version}.tar.gz
| |
| | |
| BuildRequires: dependencies
| |
| | |
| %description
| |
| Hier können Sie eine ausführliche Beschreibung Ihres Projekts angeben.
| |
| | |
| %prep
| |
| %autosetup
| |
| | |
| %build
| |
| Hier geben Sie die Build-Anweisungen an, z. B. das Kompilieren des Quellcodes.
| |
| | |
| %install
| |
| Hier geben Sie die Installationsanweisungen an, um die Dateien in das richtige Verzeichnis zu kopieren.
| |
| | |
| %files
| |
| Hier listen Sie alle Dateien auf, die in das RPM-Paket aufgenommen werden sollen.
| |
| | |
| %changelog
| |
| Hier können Sie Änderungen und Aktualisierungen für verschiedene Versionen des Pakets verfolgen.
| |
| Passen Sie die Werte für Name, Version, Release, Summary, License, URL, Source0, BuildRequires, Description und Files entsprechend an.
| |
| </pre>
| |
| =Erstellen des RPM-Pakets=
| |
| *Nachdem Sie die SPEC-Datei erstellt haben, können Sie das RPM-Paket erstellen. | |
| ;Wechseln Sie dazu in das Verzeichnis rpmbuild:
| |
| *cd ~/rpmbuild
| |
| ;Führen Sie den Befehl rpmbuild mit dem -ba-Flag gefolgt von der Pfadangabe zur SPEC-Datei aus:
| |
| *rpmbuild -ba SPECS/meinprojekt.spec | |
| | |
| Dieser Befehl erstellt sowohl das Source-Paket als auch das Binary-Paket. Das erstellte RPM-Paket wird im Verzeichnis RPMS oder SRPMS abgelegt, je nachdem, ob es sich um ein Binär- oder Source-Paket handelt.
| |
| | |
| =Überprüfung des RPM-Pakets=
| |
| ;Sie können das erstellte RPM-Paket mit dem Befehl rpmlint überprüfen, um potenzielle Probleme zu identifizieren:
| |
| *rpmlint RPMS/ARCH/meinprojekt-1.0-1.ARCH.rpm
| |
| ;Ersetzen Sie ARCH durch die entsprechende Architektur Ihres Systems (z. B. x86_64).
| |
| *Die Ausgabe von rpmlint hilft Ihnen dabei, eventuelle Fehler oder Warnungen zu beheben.
| |