Monter: Gestion de l’environnement [Table des matières][Index]
Guix fournit un paquet ‘direnv’, qui peut étendre le shell après avoir changé de répertoire de travail. Vous pouvez utiliser cet outil pour préparer un environnement Guix pur.
L’exemple suivant fournit une fonction shell dans ~/.direnvrc, qui peut être utilisée dans le dépôt Git de Guix dans ~/src/guix/.envrc pour créer un environnement de construction similaire à celui décrit dans Construire depuis Git dans le manuel de référence de GNU Guix.
Créez un fichier ~/.direnv avec le code Bash suivant :
# Grâce à <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 # Remarquez qu'on ajoute des variables shells au déclencheur de la fonction. echo "$name \$*" >> "$target" chmod +x "$target" fi } use_guix() { # indique un jeton Github. export GUIX_GITHUB_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # Nettoie « GUIX_PACKAGE_PATH ». export GUIX_PACKAGE_PATH="" # Recrée une racine du ramasse miettes. gcroots="$HOME/.config/guix/gcroots" mkdir -p "$gcroots" gcroot="$gcroots/guix" if [ -L "$gcroot" ] then rm -v "$gcroot" fi # Divers paquets. PACKAGES_MAINTENANCE=( direnv git git:send-email git-cal gnupg guile-colorized guile-readline less ncurses openssh xdot ) # Paquets de l'environnement. PACKAGES=(help2man guile-sqlite3 guile-gcrypt) # Merci <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[@]} "$@")" # Défini les drapeaux configure à l'avance. configure() { ./configure } export_function configure # Lance make et construit éventuellement quelque chose. build() { make -j 2 if [ $# -gt 0 ] then ./pre-inst-env guix build "$@" fi } export_function build # Défini une commande Git pour pousser. push() { git push --set-upstream origin } export_function push clear # Nettoie l'écran. git-cal --author='Votre Nom' # Montre le calendrier des contributions. # Montre l'aide des commandes. echo " build construit un paquet ou juste un projet si aucun argument n'est fournit configure lance ./configure avec les paramètres pré-définis push pousse un dépôt Git " }
Tous les projets contenant un .envrc avec une chaine use guix
aura des variables d’environnement et des procédures prédéfinies.
Lancez direnv allow
pour mettre en place l’environnement pour la
première fois.
Monter: Gestion de l’environnement [Table des matières][Index]