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.
To that end, all the command-line tools can be used even if you have not run
make install
. To do that, you first need to have an environment with
all the dependencies available (siehe Erstellung aus dem Git), and then simply
prefix each command with ./pre-inst-env
(the pre-inst-env
script lives in the top build tree of Guix; siehe Erstellung aus dem Git to
generate it). As an example, here is how you would build the hello
package as defined in your working tree (this assumes guix-daemon
is already running on your system; it’s OK if it’s a different version):
$ ./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
lassen41:
$ 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]