Gentoo

Wie man Gentoo Ebuilds schreibtbuild

Wie man Gentoo Ebuilds schreibtbuild
Wenn Sie nicht das gewünschte Gentoo-Paket haben, fürchten Sie sich nicht! Sie können Ihre eigenen bauen! Dazu benötigen Sie Erfahrung mit dem Kompilieren von Software mit den bekannten Linux-Toolkits make, gcc und anderen. Um ein Gentoo-Paket zu erstellen, wird 'emake' verwendet, um den Prozess zu kontrollieren und zu optimieren. Mit diesen Tools können Sie sehr schlanke Pakete erstellen, die schnell und zuverlässig laufen.

Ebuild-Struktur

Um Ihr eigenes Ebuild zu erstellen, müssen Sie mit dem richtigen * beginnen.ebuild-Datei. Ihre Ebuild-Datei ist das Herzstück Ihres gesamten Ebuild. Die ebuild-Datei hängt von vielen anderen Dateien ab, ähnlich wie make es tut. Tatsächlich hängt Ihr Ebuild in den meisten Fällen von der Marke ab, obwohl es Ihre Wahl ist. Das Folgende ist der Baum von Neovim:
/mnt/SW/projects/System/Gentoo/gentoo/app-editors/neovim
├── Dateien
│ ├── neovim-0.4.3-gcc-10-fix.Patch
│ ├── neovim-0.4.4-cmake_luaversion_patch
│ ├── neovim-0.4.4-cmake-Release-Typ.Patch
│ └── sysinit.vim
├── Manifest
├── Metadaten.xml
neovim-0.4.4-r100.ebuild
neovim-9999.ebuild

Wofür verwenden Sie diese Dateien in Ihrer Anwendung?? Das *.ebuild-Datei ist die offensichtliche Datei. Diese Datei enthält den SRC_URI, der direkt auf den Code verweist. Weitere Informationen in der Datei sind die Beschreibung, die Website und weitere Informationen, die für die Zusammenstellung des Pakets erforderlich sind.

Die Manifest-Datei enthält den Hash, der den Code eindeutig identifiziert.

Die Metadaten.xml-Datei enthält den Namen und die E-Mail-Adresse des Betreuers, den Projektnamen und einige Flags zum Kompilieren. Die Remote-Identität befindet sich auch in dieser Datei, wie das GitHub-Repository für den Upstream. Das Verzeichnis files enthält alle Patches, die Sie benötigen, und alle speziellen Einstellungen, die Sie benötigen. Das obige Beispiel zeigt eine Datei mit entsprechenden Einstellungen gemäß den Gentoo-Betreuern.

In der Ebuild-Datei

Die Werte in der Datei sind größtenteils leicht zu verstehen. Die Beschreibung und die Homepage dienen der Hilfe des Entwicklers. Die EAPI-Nummer gibt an, welche Version von Gentoo ausgeführt wird. Sie haben auch die Lizenz, die ganz klar ist; Passen Sie die Lizenz dem Code an, für den Sie eine Ebuild-Datei erstellen.

Noch kniffliger ist SLOT, das verwendet wird, wenn Sie mehrere Versionen benötigen. SLOT verweist diesen Build dann auf die Version, die Sie unterstützen. Die meiste Software hat den Wert 0, sodass immer nur eine Version gleichzeitig möglich ist.

KEYWORDS ist der Wert, der angibt, auf welchen Plattformen Ihr Quellcode kompiliert werden kann. Die angegebenen sind amd65, x86 und möglicherweise arm64. Eine vollständige Liste ist auf Ihrem Gentoo-System verfügbar. Beachten Sie, dass Sie, wenn Sie einen Beitrag leisten möchten, Muss Setze eine Tilde (~) vor die Architektur. Dies bedeutet, dass der Code ungetestet ist. Stellen Sie also sicher, dass der Code gut getestet wurde, bevor Sie dieses Symbol entfernen. Lassen Sie möglichst viele Benutzer den Code anzeigen, bevor Sie die Tilde entfernen.

Die IUSE-Variable kehrt zu den Parametern zurück, die Sie für Ihren Compiler festlegen möchten.

Sie haben auch DEPEND, das in drei verschiedenen Typen erhältlich ist. Die RDEPEND-Werte sind die Werte, die Sie beim Ausführen des Codes verwenden. Die BDEPEND-Werte sind die Build-abhängigen Werte. Das Paket, das Sie Gentoo hinzufügen möchten, enthält eine Datei, die die notwendigen Abhängigkeiten beschreibt.

Für einfache Pakete brauchst du nichts anderes. Das spezifische Paket, an dem Sie arbeiten, muss jedoch wahrscheinlich einige Dinge tun, bevor Sie den Code kompilieren. Wenn dies nicht den Erwartungen der Gentoo-Entwickler entspricht, können Sie Ihre eigenen einrichten.

Funktionen

In der Datei verwendet das Installationsprogramm bestimmte Funktionen für den gesamten Vorgang. Um beispielsweise Patches anzuwenden, bevor der Befehl ausgeführt wird, src_prepare() Funktion wird mit dieser Situation umgehen.

Das src_configure() Funktion verwendet econf zum Setzen, i.e., 'use_enable.' In dieser Funktion können Sie Ihre Dateien mit dem Unpack-Befehl entpacken. Du kannst auch Argumente an . weitergeben ./konfiguriere für dein Projekt mit econf. Wie Sie sehen, werden diese Funktionen nach ihren make-Äquivalenten benannt und oft übergeben sie Argumente.

Das src_install() Funktion führt die gleiche Funktion aus, die machen Installieren würde in einem C/C++-Build tun do. Es enthält jedoch viele Optionen, die Sie im Referenzdokument nachschlagen können.

Die meisten Funktionen sind dafür da, wenn Sie eine spezielle Fallsoftware haben. Sie werden wahrscheinlich anfangen, sich durch diese Funktionen zu wühlen, wenn Sie versuchen, Ihr erstes Paket zu implementieren.

Beispiel: SimulIDE-Paketdatei

Hier präsentieren wir eine Datei, die für das SimulIDE-Paket erstellt wurde. Das Paket erfordert eine Qt5-Entwicklungsumgebung, also müssen Sie diese in Ihrer Ebuild-Datei hinzufügen. In der folgenden Abbildung sehen Sie die RDEPEND-Werte, die diese Idee widerspiegeln. Die Bibliotheken sind bereits in den Gentoo-Repositorys enthalten, was es einfach macht, darauf zu verweisen.

# Copyright 2021 Mats Tage Axelsson
# Verteilt unter den Bedingungen der GNU General Public License v3
EAPI=7
DESCRIPTION="SimulIDE simuliert Ihre Schaltungsdesigns, es enthält die Arduino-Emulation."
HOMEPAGE="https://www.simulid.com/p/home.html"
SRC_URI="https://mailfence.com/pub/docs/santigoro/web/SimulIDE_0.4.14/simulide_0.4.14-SR4_Quellen.Teer.gz"
LIZENZ="GPL-3"
SCHLITZ="0"
SCHLÜSSELWÖRTER="~x86 ~amd64"
RDEPEND="dev-qt/qtsvg
dev-qt/qtxml
dev-qt/qtscript
dev-qt/qtwidgets
dev-qt/qtconcurrent
dev-qt/qtserialport
dev-qt/qtmultimedia"
DEPEND="$RDEPEND
dev-libs/libelf
dev-embedded/avr-libc"
src_prepare()
entpacken simulide_0.4.14-SR4_Quellen.Teer.gz

src_configure()
econf --with-popt

In dem src_prepare() Funktion können Sie sehen, dass das Paket vor der Verwendung ausgepackt wird.

Überlagerung

Wenn Sie alle Ihre Fehler gekürzt und bereinigt haben, möchten Sie vielleicht Ihr Paket zum Gentoo-Projekt hinzufügen. Layman wurde erstellt, damit Sie experimentelle Software für die Installation Ihrer Hauptdistribution verwenden können. Das Projekt heißt Overlays, aber der Befehl zum Installieren heißt Layman.

Fazit

Das Erstellen neuer Pakete für Gentoo ist ein Unterfangen, das Ihre Fähigkeiten erweitern kann. Wenn Sie jedoch viele Pakete erstellt haben, bevor Sie make und die gcc-Toolsuite verwenden, sollten Sie diesen Prozess ziemlich schnell erlernen können. Stellen Sie außerdem sicher, dass Sie so viel wie möglich zur Community beitragen.

AppyMouse On-Screen Trackpad und Mauszeiger für Windows Tablets
Tablet-Benutzer vermissen oft den Mauszeiger, insbesondere wenn sie die Laptops gewohnt sind. Die Touchscreen-Smartphones und -Tablets bieten viele Vo...
Mittlere Maustaste funktioniert nicht unter Windows 10
Das mittlere Maustaste hilft Ihnen beim Scrollen durch lange Webseiten und Bildschirme mit vielen Daten. Wenn das aufhört, werden Sie am Ende die Tast...
So ändern Sie die linke und rechte Maustaste auf einem Windows 10-PC
Es ist ganz normal, dass alle Computer-Maus-Geräte ergonomisch für Rechtshänder gestaltet sind. Es gibt aber auch Mausgeräte, die speziell für Linkshä...