Nächste: , Vorige: , Nach oben: Programmierschnittstelle   [Inhalt][Index]


8.13 guix repl aufrufen

Der Befehl guix repl erleichtert es, Guix von Guile aus zu programmieren. Dazu startet er eine Guile-REPL (Read-Eval-Print Loop, kurz REPL, deutsch Lese-Auswerten-Schreiben-Schleife) zur interaktiven Programmierung (siehe Using Guile Interactively in Referenzhandbuch zu GNU Guile) oder er führt Guile-Skripts aus (siehe Running Guile Scripts in Referenzhandbuch zu GNU Guile). Im Vergleich dazu, einfach den Befehl guile aufzurufen, garantiert guix repl, dass alle Guix-Module und deren Abhängigkeiten im Suchpfad verfügbar sind.

Die allgemeine Syntax lautet:

guix repl Optionen [Datei Argumente]

Wird ein Datei-Argument angegeben, wird die angegebene Datei als Guile-Skript ausgeführt.

guix repl my-script.scm

Um Argumente an das Skript zu übergeben, geben Sie davor -- an, damit Sie nicht als Argumente an guix repl verstanden werden:

guix repl -- my-script.scm --input=foo.txt

Wenn Sie möchten, dass ein Skript direkt aus der Shell heraus ausgeführt werden kann und diejenige ausführbare Datei von Guix benutzt wird, die sich im Suchpfad des Benutzers befindet, dann fügen Sie die folgenden zwei Zeilen ganz oben ins Skript ein.

#!/usr/bin/env -S guix repl --
!#

Wenn ein Skript in einer interaktiven REPL direkt aus der Shell heraus ausgeführt werden soll, verwenden Sie die Befehlszeilenoption --interactive:

#!/usr/bin/env -S guix repl --interactive
!#

Ohne einen Dateinamen als Argument wird eine Guile-REPL gestartet, so dass man Guix interaktiv benutzen kann (siehe Interaktiv mit Guix arbeiten):

$ guix repl
scheme@(guile-user)> ,use (gnu packages base)
scheme@(guile-user)> coreutils
$1 = #<package coreutils@8.29 gnu/packages/base.scm:327 3e28300>

guix repl implementiert zusätzlich ein einfaches maschinenlesbares Protokoll für die REPL, das von (guix inferior) benutzt wird, um mit Untergeordneten zu interagieren, also mit getrennten Prozessen einer womöglich anderen Version von Guix.

Folgende Optionen gibt es:

--list-types

Zeigt an, welche Möglichkeiten Sie für Typ angeben können, wenn Sie guix repl --type=TYP benutzen, und terminiert.

--type=Typ
-t Typ

Startet eine REPL des angegebenen Typs, der einer der Folgenden sein darf:

guile

Die Voreinstellung, mit der eine normale, voll funktionsfähige Guile-REPL gestartet wird.

machine

Startet eine REPL, die ein maschinenlesbares Protokoll benutzt. Dieses Protokoll wird vom Modul (guix inferior) gesprochen.

--listen=Endpunkt

Der Vorgabe nach würde guix repl von der Standardeingabe lesen und auf die Standardausgabe schreiben. Wird diese Befehlszeilenoption angegeben, lauscht die REPL stattdessen auf dem Endpunkt auf Verbindungen. Hier sind Beispiele gültiger Befehlszeilenoptionen:

--listen=tcp:37146

Verbindungen mit dem „localhost“ auf Port 37146 akzeptieren.

--listen=unix:/tmp/socket

Verbindungen zum Unix-Socket /tmp/socket akzeptieren.

--interactive
-i

Im Anschluss, nachdem Datei ausgeführt wurde, die interaktive REPL starten.

--load-path=Verzeichnis
-L Verzeichnis

Das Verzeichnis vorne an den Suchpfad für Paketmodule anfügen (siehe Paketmodule).

Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete für Skript oder REPL sichtbar sind.

-q

Das Laden der ~/.guile-Datei unterdrücken. Nach Voreinstellung würde diese Konfigurationsdatei beim Erzeugen einer REPL für guile geladen.


Nächste: Interaktiv mit Guix arbeiten, Vorige: G-Ausdrücke, Nach oben: Programmierschnittstelle   [Inhalt][Index]