Acima: Gerenciamento de ambientes [Conteúdo][Índice]
Guix fornece um pacote ‘direnv’, que pode estender o shell após a mudança de diretório. Esta ferramenta pode ser usada para preparar um ambiente Guix puro.
O exemplo a seguir fornece uma função de shell para o arquivo ~/.direnvrc, que pode ser usada no repositório Guix Git no arquivo ~/src/guix/.envrc para configurar um ambiente de compilação semelhante ao descrito em veja Compilando do git em Manual de Referência do GNU Guix.
Crie um ~/.direnvrc com um código Bash:
# Obrigado <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 # Observe que adicionamos variáveis de shell ao gatilho da função. echo "$name \$*" >> "$target" chmod +x "$target" fi } use_guix() { # Defina o token do GitHub. export GUIX_GITHUB_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # Unset 'GUIX_PACKAGE_PATH'. export GUIX_PACKAGE_PATH="" # Recrie uma raiz do coletor de lixo. gcroots="$HOME/.config/guix/gcroots" mkdir -p "$gcroots" gcroot="$gcroots/guix" if [ -L "$gcroot" ] then rm -v "$gcroot" fi # Pacotes diversos. PACKAGES_MAINTENANCE=( direnv git git:send-email git-cal gnupg guile-colorized guile-readline less ncurses openssh xdot ) # Pacotes de ambiente. PACKAGES=(help2man guile-sqlite3 guile-gcrypt) # Obrigado <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[@]} "$@")" # Predefina sinalizadores de configuração. configure() { ./configure } export_function configure # Execute make e, opcionalmente, construa algo. build() { make -j 2 if [ $# -gt 0 ] then ./pre-inst-env guix build "$@" fi } export_function build # Predefina o comando push do Git. push() { git push --set-upstream origin } export_function push clear # Limpe a tela. git-cal --author='Seu nome' # Mostrar calendário de contribuições. #Mostrar ajuda de comandos. echo " build construir um pacote ou apenas um projeto se nenhum argumento for fornecido configure execute ./configure com parâmetros predefinidos push enviar para o repositório Git upstream " }
Cada projeto contendo .envrc com uma string use guix
terá
variáveis de ambiente e procedimentos predefinidos.
Execute direnv allow
para configurar o ambiente pela primeira vez.
Acima: Gerenciamento de ambientes [Conteúdo][Índice]