Nächste: Perfekt eingerichtet, Vorige: Erstellung aus dem Git, Nach oben: Mitwirken [Inhalt][Index]
Um eine gesunde Arbeitsumgebung zu erhalten, ist es hilfreich, die im lokalen Quellbaum vorgenommenen Änderungen zunächst zu testen, ohne sie tatsächlich zu installieren. So können Sie zwischen Ihrem Endnutzer-„Straßenanzug“ und Ihrem „Faschingskostüm“ unterscheiden.
Zu diesem Zweck können alle Befehlszeilenwerkzeuge auch schon benutzt
werden, ohne dass Sie make install
laufen lassen. Dazu müssen Sie
sich in einer Umgebung befinden, in der alle Abhängigkeiten von Guix
verfügbar sind (siehe Erstellung aus dem Git) und darin einfach vor jeden
Befehl ./pre-inst-env
schreiben (das Skript pre-inst-env
befindet sich auf oberster Ebene im Verzeichnis, wo Guix erstellt wird; es
wird durch Ausführung von ./bootstrap
gefolgt von
./configure
erzeugt). Zum Beispiel würden Sie so das Paket
hello
erstellen lassen, so wie es in der gegenwärtigen Kopie des
Guix-Quellbaums definiert wurde (es wird angenommen, dass
guix-daemon
auf Ihrem System bereits läuft, auch wenn es eine
andere Version ist):
$ ./pre-inst-env guix build hello
Entsprechend würden Sie dies eingeben, um eine Guile-Sitzung zu öffnen, die die Guix-Module benutzt:
$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))' ;;; ("x86_64-linux")
… und auf einer REPL (siehe Interaktiv mit Guix arbeiten):
$ ./pre-inst-env guile scheme@(guile-user)> ,use(guix) scheme@(guile-user)> ,use(gnu) scheme@(guile-user)> (define snakes (fold-packages (lambda (package lst) (if (string-prefix? "python" (package-name package)) (cons package lst) lst)) '())) scheme@(guile-user)> (length snakes) $1 = 361
Wenn Sie am Daemon und damit zu tun habendem Code hacken oder wenn
guix-daemon
nicht bereits auf Ihrem System läuft, können Sie ihn
direkt aus dem Verzeichnis heraus starten, wo Sie Guix erstellen
lassen40:
$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
Das pre-inst-env
-Skript richtet alle Umgebungsvariablen ein, die
nötig sind, um dies zu ermöglichen, einschließlich PATH
und
GUILE_LOAD_PATH
.
Beachten Sie, dass ./pre-inst-env guix pull
den lokalen Quellbaum
nicht aktualisiert; es aktualisiert lediglich die symbolische
Verknüpfung ~/.config/guix/current (siehe guix pull
aufrufen). Um Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen
git pull
benutzen.
Manchmal, insbesondere wenn Sie das Repository aktualisiert haben, wird beim
Ausführen mit ./pre-inst-env
eine Nachricht ähnlich wie in diesem
Beispiel erscheinen:
;;; note: source file /home/user/projects/guix/guix/progress.scm ;;; newer than compiled /home/user/projects/guix/guix/progress.go
Es handelt sich lediglich um einen Hinweis und Sie können ihn getrost
ignorieren. Los werden Sie die Nachricht, indem Sie make -j4
ausführen. Bis dahin läuft Guile etwas langsamer als sonst, weil es den
Quellcode interpretieren muss und nicht auf vorbereitete
Guile-Objekt-Dateien (.go) zurückgreifen kann.
Sie können make
automatisch ausführen lassen, während Sie am Code
arbeiten, nämlich mit watchexec
aus dem Paket watchexec
. Um
zum Beispiel jedes Mal neu zu erstellen, wenn Sie etwas an einer Paketdatei
ändern, führen Sie ‘watchexec -w gnu/packages -- make -j4’ aus.
Die Befehlszeilenoption -E von sudo
stellt sicher, dass GUILE_LOAD_PATH
richtig gesetzt wird, damit
guix-daemon
und die davon benutzten Werkzeuge die von ihnen
benötigten Guile-Module finden können.
Nächste: Perfekt eingerichtet, Vorige: Erstellung aus dem Git, Nach oben: Mitwirken [Inhalt][Index]