So erstellen Sie ein RPM -Paket von GNU Hello World in Fedora
- 2651
- 303
- Phoebe Jeorga
RPM (rekursiv. Obwohl es ursprünglich für die Verwendung in der Verwendung erstellt wurde Red Hat Linux, Jetzt wird es in vielen Linux -Verteilungen verwendet, wie z Centos, Fedora, Und OpenSuse. Wichtig ist, dass der Name RPM auf das Paketmanagerprogramm und die .Drehzahl
ist ein Dateiformat.
In diesem Artikel erläutern wir das Schreiben von RPM -Dateien und zeigen, wie beispielsweise eine einfache Softwarepakete für Quelle und binäre Software erstellt werden können, GNU "Hallo Welt" Drehzahlpaket in Fedora Linux Verteilung. Wir gehen davon aus, dass Sie ein grundlegendes Verständnis für vorgefertigte RPM-Pakete und mit dem kostenlosen Open-Source-Software-Erstellungsprozess haben.
Installieren Sie Entwicklungstools in Fedora
Beginnen wir mit der Einrichtung der Entwicklungsumgebung in Fedora Linux Durch Ausführen des folgenden Befehls, um die erforderlichen Tools zum Erstellen von Drehzahl zu installieren.
$ sudo dnf installieren Sie Fedora-Packager @Development-ToolsInstallieren Sie Entwicklungstools in Fedora
Fügen Sie als nächstes Ihr nicht privilegiertes Konto dem 'hinzu' hinzuverspotten'Gruppe wie folgt (ersetzen Tecmint mit Ihrem tatsächlichen Benutzernamen). Auf diese Weise können Sie das Build -Verfahren in einem sauberen Chroot testen.
$ sudo usermod -a -g Mock Tecmint
Erstellen Sie nun einen Drehzahlbau in Ihrem ~/rpmbuild
Verzeichnis und überprüfen Sie den Build mit den folgenden Befehlen. Es wird eine Liste von Unterverzeichnissen angezeigt, die Projektquellcode, RPM-Konfigurationsdateien und binäre Pakete enthält.
$ rpmdev-setuptree $ tree ~/rpmbuild/Bauumgebung schaffen
Hier ist, wofür jedes Verzeichnis bestimmt ist:
- BAUEN - Speichert verschiedene %Buildroot -Verzeichnisse, wenn Pakete erstellt werden.
- Drehzahl - Enthält binäre RPMs in Unterdirektorien der Architektur.
- Quellen - Speichert komprimierte Quellarchive und alle Patches. Hier wird der Befehl rpmbuild danach suchen.
- Spezifikationen - speichert die technischen Dateien.
- Srpms - Speichert die Quelldrehzahl anstelle einer binären Drehzahl.
Aufbau einer Drehzahl „Hello World“
In diesem Schritt müssen Sie den Quellcode herunterladen (auch bekannt als der „Ströme"Quelle) des Hello World -Projekts, das wir verpacken, in die ~/rpmbuild/Quelle Verzeichnis mit dem folgenden WGet -Befehl.
$ CD ~/rpmbuild/Quellen $ wget http: // ftp.Gnu.org/gnu/hello/hello-2.10.Teer.gz -p ~/rpmbuild/Quellen
Konfigurieren wir als nächstes das RPM -Paket mit a .Spezifikation
Datei (lass es uns benennen Hallo.Spezifikation
in diesem Fall) in der ~/rpmbuild/Spezifikationen Verzeichnis verwendet die RPMDEV-NewSpec Programm.
$ cd ~/rpmbuild/specs $ rpmdev-newspec Hallo $ lsErstellen Sie eine Hallo -Spezifikationsdatei
Dann öffnen Sie die Hallo.Spezifikation
Datei mit Ihrem bevorzugten Editor.
$ vim Hallo.Spezifikation
Die Standardvorlage sollte so aussehen:
Name: Hallo Version: Release: 1%?Dist Zusammenfassung: Lizenz: URL: Quelle0: BuildRequires: Erforderlich: %Beschreibung %Prep %Autosetup % % %configure %make_build %Installieren RM-Rf $ RPM_BUILD_ROOT %MICE_INSTALL %Dateien %lizenz add-license-here %doc add- add- add- add- add- add- add- add- add- docs here %ChangeLog * Di 28. Mai 2019 Aaron Kili
Erklären wir kurz die Standardparameter in a .Spezifikation
Datei:
- Name - Wird verwendet, um einen Namen für das Paket festzulegen.
- Ausführung - sollte stromaufwärts spiegeln.
- Freigeben - Zahlen, die Sie in Fedora arbeiten.
- Zusammenfassung - ist eine kurze Einzeilungsbeschreibung des Pakets, der erste Buchstabe sollte Großbuchstaben sein, um RPMLINT-Beschwerden zu vermeiden.
- Lizenz - Überprüfen Sie den Lizenzstatus der Software, indem Sie die Quelldateien und/oder deren Lizenzdateien inspizieren und/oder mit den Autoren sprechen.
- URL - Gibt die Startseite des Softwarepakets an.
- Quelle0 - Gibt die Quelldateien an. Es kann eine direkte URL oder ein Pfad des komprimierten Quellcodes der Software sein.
- Buildrequires - Gibt die Abhängigkeiten an, die zum Erstellen der Software erforderlich sind.
- Erfordert - Gibt die Abhängigkeiten an, die zum Ausführen der Software erforderlich sind.
- %prep - wird verwendet, um die Umgebung für den Aufbau des RPM -Pakets zu schaffen.
- %bauen - wird verwendet, um die Quellcodes zu kompilieren und zu erstellen.
- %Installieren - Dies wird verwendet, um die Programme zu installieren. Die Befehle (n) werden in benötigtem Kopieren der resultierenden Datei aus dem Build -Prozess in das BuildRoot -Verzeichnis benötigt.
- %Dateien - In diesem Abschnitt werden die vom Paket bereitgestellten Dateien aufgeführt, die auf dem System installiert werden.
- %Änderungsprotokoll - Sollte die Arbeiten zur Vorbereitung der Drehzahl speichern, insbesondere wenn Sicherheits- und Fehler -Patches auf der Basis -Upstream -Quelle enthalten sind. Es wird automatisch generiert, während das Hallo erstellt wird.Spezifische Datei. Die Changelog -Daten werden normalerweise von angezeigt
RPM -CHANGELOG -Q
.
Jetzt bearbeiten Sie Ihre .Spezifikation
Datei und Änderungen wie gezeigt vornehmen.
Name: Hallo Version: 2.10 Release: 1%?Dist Zusammenfassung: Das Programm "Hello World" aus GNU -Lizenz: GPLV3+ URL: http: // ftp.Gnu.org/gnu/%name source0: http: // ftp.Gnu.org/gnu/%Name/%Name-%Version.Teer.GZ BuildRequires: GetText erfordert (Beitrag): Info erfordert (Vor): Info %Beschreibung Das Programm "Hello World" -Paket %prep %autosetup %Build %Konfigurieren Sie Make %make_build %Install % %MICE_INSTALL %FED_ILL %Name Rm - f %Buildroot/ %_ Infodir/dir %post/sbin/install-info %_ Infodir/ %Name.info %_ Infodir/dir || : %preun if [$ 1 = 0]; dann/sbin/install-info-delete %_ Infodir/ %Name.info %_ Infodir/dir || : fi %Dateien -f %Name.Lang %_ Mandir/Man1/Hallo.1.* %_ Infodir/Hallo.die Info.* %_ Bindir/Hello %Doc Authors ChangeLog News Readme dank der Lizenzkopie %ChangeLog * Di 28. Mai 2019 Aaron Kili
Sie werden feststellen, dass wir in der obigen Datei einige neue Parameter verwendet haben, die nicht erläutert wurden. Diese nennt man Makros, Wird verwendet, um Systemaufrufe zu erstellen, die von RPM definiert sind, um Installationspfade für Pakete festzulegen. Daher ist es normalerweise vorzuziehen, diese Pfade auch in technischen Dateien nicht festzuhalten, sondern die gleichen Makros für die Konsistenz verwenden.
Im Folgenden finden Sie RPM -Build- und Verzeichnis -Makros zusammen mit ihren Definitionen und Standardwerten:
- %make_build - wird in der verwendet %bauen Abschnitt der Spezifikationsdatei wird der Befehl machen.
- %Name - Definiert Paket oder Verzeichnisname.
- %Buildroot - %_ Buildrootdir/%Name-%Version-%Release.%_ Arch, wie $ Buildroot
- %_ Infodir - %_ Datarootdir/Info, Standard:/usr/share/Info
- %_ Mandir - %_ Datarootdir/Man, Standard:/usr/share/Man
- %_ Bindir - %_ exec_prefix/bin, Standard:/usr/bin
Beachten Sie, dass Sie die Werte für diese finden können Makros im /usr/lib/rpm/plattform/*/macros oder siehe Verpackungsrichtlinien: RPM -Makros.
Erstellen des RPM -Pakets
Führen Sie den folgenden RPMBuild -Befehl aus, um die Quelle, die Binär- und Debugging -Pakete zu erstellen.
$ rpmbuild -ba Hallo.Spezifikation
Nach dem Build -Prozess werden die Quell -RPMs und die binären Drehzahl in der Erstellung erstellt … /Srpms /
Und … /RPMS /
Verzeichnisse jeweils. Sie können das RPMLint -Programm verwenden, um zu überprüfen und sicherzustellen, dass die erstellten Spezifikationsdateien und RPM -Dateien den RPM -Designregeln entsprechen:
$ rpmlint Hallo.Spec…/srpms/Hallo*…/rpms/*/Hallo**Überprüfen Sie Pakete auf Fehler
Wenn Fehler wie im obigen Screenshot angezeigt werden, beheben Sie diese, bevor Sie fortfahren können.
Last but not least, verwenden Sie Scheinprogramm Um zu überprüfen, ob der Paketbau in der Fedora -eingeschränkten Build -Umgebung erfolgreich ist.
$ mock --verbose… /srpms /hello-2.10-1.FC29.src.DrehzahlÜberprüfen Sie das RPM -Paketbau
Weitere Informationen erhalten Sie in der Fedora -Dokumentation: Erstellen von RPM -Paketen.
Das ist alles! In diesem Artikel haben wir erklärt. Wir haben auch gezeigt, wie man ein Waffen -Hello -Word -RPM -Paket erstellt. Verwenden Sie das Feedback -Formular unten, um uns für Fragen oder Kommentare zu erreichen.
- « Linux Uptime -Befehl mit Nutzungsbeispielen
- Einrichten eines sicheren FTP -Servers mit SSL/TLS auf Ubuntu einrichten »