So erstellen Sie ein RPM -Paket von GNU Hello World in Fedora

So erstellen Sie ein RPM -Paket von GNU Hello World in Fedora

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-Tools 
Installieren 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:

  1. BAUEN - Speichert verschiedene %Buildroot -Verzeichnisse, wenn Pakete erstellt werden.
  2. Drehzahl - Enthält binäre RPMs in Unterdirektorien der Architektur.
  3. Quellen - Speichert komprimierte Quellarchive und alle Patches. Hier wird der Befehl rpmbuild danach suchen.
  4. Spezifikationen - speichert die technischen Dateien.
  5. 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 $ ls 
Erstellen 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.