Nach oben: Umgebungen verwalten [Inhalt][Index]
Guix stellt ein ‘direnv’-Paket zur Verfügung, mit der die Shell nach einem Verzeichniswechsel erweitert werden kann. Dieses Werkzeug kann benutzt werden, um eine reine, „pure“ Guix-Umgebung vorzubereiten.
Das folgende Beispiel zeigt eine Shell-Funktion für die ~/.direnvrc-Datei, die in einer Datei ~/src/guix/.envrc in Guix’ Git-Repository benutzt werden kann, um eine zur Beschreibung im Erstellung aus dem Git in Referenzhandbuch zu GNU Guix ähnliche Erstellungsumgebung herzustellen.
Erstellen Sie eine ~/.direnvrc mit einem Bash-Code darin:
# Dank an <https://github.com/direnv/direnv/issues/73#issuecomment-152284914> export_function() { local name=$1 local alias_dir=$PWD/.direnv/aliases mkdir -p "$alias_dir" PATH_add "$alias_dir" local target="$alias_dir/$name" if declare -f "$name" >/dev/null; then echo "#!$SHELL" > "$target" declare -f "$name" >> "$target" 2>/dev/null # Beachten Sie, wir fügen Shell-Variable in den Funktionsauslöser ein. echo "$name \$*" >> "$target" chmod +x "$target" fi } use_guix() { # GitHub-Token festlegen. export GUIX_GITHUB_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # Deaktivieren von 'GUIX_PACKAGE_PATH'. export GUIX_PACKAGE_PATH="" # Müllsammlerwurzel neu erzeugen. gcroots="$HOME/.config/guix/gcroots" mkdir -p "$gcroots" gcroot="$gcroots/guix" if [ -L "$gcroot" ] then rm -v "$gcroot" fi # Verschiedene Pakete. PACKAGES_MAINTENANCE=( direnv git git:send-email git-cal gnupg guile-colorized guile-readline less ncurses openssh xdot ) # In die Umgebung aufzunehmende Pakete. PACKAGES=(help2man guile-sqlite3 guile-gcrypt) # Dank an <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html> eval "$(guix shell --search-paths --root="$gcroot" --pure \ --development guix ${PACKAGES[@]} ${PACKAGES_MAINTENANCE[@]} "$@")" # configure-Optionen vordefinieren. configure() { ./configure } export_function configure # make ausführen und optional etwas erstellen. build() { make -j 2 if [ $# -gt 0 ] then ./pre-inst-env guix build "$@" fi } export_function build # Git-Befehl zum Pushen vordefinieren. push() { git push --set-upstream origin } export_function push clear # Den Bildschirm löschen. git-cal --author='Ihr Name' # Kalender bisheriger Beiträge zeigen. # Befehlsübersicht anzeigen. echo " build ein Paket oder, ohne Argumente, ein Projekt erstellen configure ./configure mit vordefinierten Parametern push ins Upstream-Git-Repository pushen " }
Jedes Projekt, das eine .envrc mit einer Zeichenkette use guix
enthält, wird vordefinierte Umgebungsvariable und Prozeduren verwenden.
Führen Sie direnv allow
aus, um die Umgebung bei der ersten
Nutzung einzurichten.
Nach oben: Umgebungen verwalten [Inhalt][Index]