Nächste: Paketmodule in einem Unterverzeichnis, Vorige: Kanäle mit Substituten, Nach oben: Kanäle [Inhalt][Index]
Sagen wir, Sie haben ein paar eigene Paketvarianten oder persönliche Pakete, von denen Sie meinen, dass sie nicht geeignet sind, ins Guix-Projekt selbst aufgenommen zu werden, die Ihnen aber dennoch wie andere Pakete auf der Befehlszeile zur Verfügung stehen sollen. Indem Sie einen Kanal damit anlegen, wird Ihre Sammlung von Paketen nutzbar und Sie können sie mit anderen teilen. Dazu sind folgende Schritte nötig:
mkdir my-channel cd my-channel git init
Ein Beispiel: Alice könnte ein Modul mit dem Namen (alice packages
greetings)
bereitstellen für ihre
Lieblings-Hallo-Welt-Implementierungen. Zu diesem Zweck würde Alice ein
Verzeichnis entsprechend dem Modulnamen erzeugen.
mkdir -p alice/packages $EDITOR alice/packages/greetings.scm git add alice/packages/greetings.scm
Welchen Namen Sie einem Paketmodul geben möchten, bleibt Ihnen
überlassen. Behalten Sie nur die Einschränkung im Kopf, dass sich der Name
von anderen Paketsammlungen unterscheiden muss, deshalb trifft Alice aus
unserem Beispiel die weise Entscheidung für (alice packages …)
als
Namensraum.
Es sei erwähnt, dass Sie Paketmodule auch in einem Unterverzeichnis innerhalb des Repositorys ablegen können; siehe dazu Paketmodule in einem Unterverzeichnis.
guix build
verwenden, wobei Sie mitteilen, dass es die Module aus dem Git-Checkout
verwenden soll. Nehmen wir zum Beispiel an, in (alice packages
greetings)
wird ein Paket namens hi-from-alice
angeboten. Dann führt
Alice aus dem Git-Checkout diesen Befehl aus:
guix build -L. hi-from-alice
Hier wird mit -L.
das aktuelle Verzeichnis zu Guiles Ladepfad
hinzugefügt (siehe Load Paths in Referenzhandbuch zu GNU
Guile).
git commit
Als Kanalautor möchten Sie vielleicht Materialien mitliefern, damit dessen Nutzer ihn authentifizieren können. Siehe Kanalauthentifizierung und Kanalautorisierungen angeben für Informationen, wie das geht.
guix pull
ausführen
(siehe guix pull
aufrufen):
$EDITOR ~/.config/guix/channels.scm guix pull
Von nun an verhält sich Guix so, als hätte man das Wurzelverzeichnis des
Git-Repositorys jenes Kanals dauerhaft zu Guiles Ladepfad hinzugefügt. In
Alice’ Fall wird also (alice packages greetings)
automatisch durch
den guix
-Befehl gefunden.
Erledigt!
Warnung: Ehe Sie Ihren Kanal der Welt zur Verfügung stellen, möchten wir Ihnen auch ein paar Worte der Warnung mit auf den Weg geben:
- Bevor Sie einen Kanal veröffentlichen, überlegen Sie sich bitte erst, ob Sie die Pakete nicht besser zum eigentlichen Guix-Projekt beisteuern (siehe Mitwirken). Das Guix-Projekt ist gegenüber allen Arten freier Software offen und zum eigentlichen Guix gehörende Pakete stehen allen Guix-Nutzern zur Verfügung, außerdem profitieren sie von Guix’ Qualitätssicherungsprozess.
- Bedenken Sie, dass Paketmodule und Paketdefinitionen Scheme-Code sind, der verschiedene Programmierschnittstellen (APIs) benutzt. Wir, die Entwickler von Guix, ändern APIs nie einfach so, versprechen aber auch nicht, APIs nicht zu verändern. Wenn Sie Paketdefinitionen außerhalb von Guix betreuen, sehen wir es als Ihre Aufgabe an, deren Kompatibilität sicherzustellen.
- Das bedeutet auch, dass Sie, wenn Sie einen externen Kanal verwenden und dieser kaputt geht, Sie dies bitte den Autoren des Kanals und nicht dem Guix-Projekt melden.
Wir haben Sie gewarnt! Allerdings denken wir auch, dass externe Kanäle eine praktische Möglichkeit sind, die Paketsammlung von Guix zu ergänzen und Ihre Verbesserungen mit anderen zu teilen, wie es dem Grundgedanken freier Software entspricht. Bitte schicken Sie eine E-Mail an guix-devel@gnu.org, wenn Sie dies diskutieren möchten.
Nächste: Paketmodule in einem Unterverzeichnis, Vorige: Kanäle mit Substituten, Nach oben: Kanäle [Inhalt][Index]