Nächste: Programmierstil, Vorige: Perfekt eingerichtet, Nach oben: Mitwirken [Inhalt][Index]
Die GNU-Distribution ist noch sehr jung und einige Ihrer Lieblingspakete könnten noch fehlen. Dieser Abschnitt beschreibt, wie Sie dabei helfen können, die Distribution wachsen zu lassen.
Pakete mit freier Software werden normalerweise in Form von Tarballs mit dem Quellcode angeboten – typischerweise in tar.gz-Archivdateien, in denen alle Quelldateien enthalten sind. Ein Paket zur Distribution hinzuzufügen, bedeutet also zweierlei Dinge: Zum einen fügt man ein Rezept ein, das beschreibt, wie das Paket erstellt werden kann, einschließlich einer Liste von anderen Paketen, die für diese Erstellung gebraucht werden, zum anderen fügt man Paketmetadaten zum Rezept hinzu, wie zum Beispiel eine Beschreibung und Lizenzinformationen.
In Guix sind all diese Informationen ein Teil der Paketdefinitionen. In Paketdefinitionen hat man eine abstrahierte, hochsprachliche Sicht auf das Paket. Sie werden in der Syntax der Scheme-Programmiersprache verfasst; tatsächlich definieren wir für jedes Paket eine Variable und binden diese an dessen Definition, um die Variable anschließend aus einem Modul heraus zu exportieren (siehe Paketmodule). Allerdings ist kein tiefgehendes Wissen über Scheme erforderlich, um Pakete zu erstellen. Mehr Informationen über Paketdefinitionen finden Sie im Abschnitt Pakete definieren.
Eine fertige Paketdefinition kann, nachdem sie in eine Datei im
Quell-Verzeichnisbaum von Guix eingesetzt wurde, mit Hilfe des Befehls
guix build
getestet werden (siehe Aufruf von guix build
). Wenn
das Paket zum Beispiel den Namen gnew
trägt, können Sie folgenden
Befehl aus dem Erstellungs-Verzeichnisbaum von Guix heraus ausführen (siehe
Guix vor der Installation ausführen):
./pre-inst-env guix build gnew --keep-failed
Wenn Sie --keep-failed
benutzen, ist es leichter, fehlgeschlagene
Erstellungen zu untersuchen, weil dann der Verzeichnisbaum der
fehlgeschlagenen Erstellung zugänglich bleibt. Eine andere nützliche
Befehlszeilenoption bei der Fehlersuche ist --log-file
, womit das
Erstellungsprotokoll eingesehen werden kann.
Wenn der guix
-Befehl das Paket nicht erkennt, kann es daran
liegen, dass die Quelldatei einen Syntaxfehler hat oder ihr eine
define-public
-Klausel fehlt, die die Paketvariable exportiert. Um das
herauszufinden, können Sie das Modul aus Guile heraus laden, um mehr
Informationen über den tatsächlichen Fehler zu bekommen:
./pre-inst-env guile -c '(use-modules (gnu packages gnew))'
Sobald Ihr Paket erfolgreich erstellt werden kann, schicken Sie uns bitte einen Patch (siehe Einreichen von Patches). Wenn Sie dabei Hilfe brauchen sollten, helfen wir gerne. Ab dem Zeitpunkt, zu dem der Patch als Commit ins Guix-Repository eingepflegt wurde, wird das neue Paket automatisch durch unser System zur Kontinuierlichen Integration auf allen unterstützten Plattformen erstellt.
Benutzern steht die neue Paketdefinition zur Verfügung, nachdem sie das
nächste Mal guix pull
ausgeführt haben (siehe guix pull
aufrufen). Wenn ci.guix.gnu.org
selbst damit fertig ist, das
Paket zu erstellen, werden bei der Installation automatisch Binärdateien von
dort heruntergeladen (siehe Substitute). Menschliches Eingreifen muss
nur stattfinden, um den Patch zu überprüfen und anzuwenden.
Nächste: Programmierstil, Vorige: Perfekt eingerichtet, Nach oben: Mitwirken [Inhalt][Index]