Próximo: A configuração perfeita, Anterior: Executando o conjunto de testes, Acima: Contribuindo [Conteúdo][Índice]
Para manter um ambiente de trabalho saudável, você achará útil testar as alterações feitas na árvore local de fontes sem realmente instalá-las. Para que você possa distinguir entre o seu chapéude ”usuário final” e sua fantasia ”misturada”.
Para esse fim, todas as ferramentas de linha de comando podem ser usadas
mesmo se você não tiver executado make install
. Para fazer isso,
primeiro você precisa ter um ambiente com todas as dependências disponíveis
(veja Compilando do git) e, em seguida, simplesmente prefixar cada
comando com ./pre-inst-env
(o pre-inst-env fica na árvore
de construção superior do Guix; veja Compilando do git para
gerá-lo). Como exemplo, aqui está como você construiria o pacote
hello
conforme definido em sua árvore de trabalho (isso pressupõe que
guix-daemon
já esteja em execução em seu sistema; não há problema
se for uma versão diferente):
$ ./pre-inst-env guix build hello
Da mesma forma, um exemplo para uma sessão do Guile usando os módulos Guix:
$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))' ;;; ("x86_64-linux")
… e para um REPL (veja Using Guix Interactively):
$ ./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
Se você estiver hackeando o daemon e seu código de suporte ou se
guix-daemon
ainda não estiver em execução no seu sistema, você
pode iniciá-lo diretamente da build tree45:
$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
O script pre-inst-env
configura todas as variáveis de ambiente
necessárias para prover suporte a isso, incluindo PATH
e
GUILE_LOAD_PATH
.
Observe que ./pre-inst-env guix pull
não atualiza a área de
fontes local; ele simplesmente atualiza o link simbólico
~/.config/guix/current (veja Invocando guix pull
). Execute
git pull
em vez disso, se você quiser atualizar sua árvore de
fontes local.
Às vezes, especialmente se você atualizou seu repositório recentemente,
executar ./pre-inst-env
imprimirá uma mensagem semelhante ao
exemplo a seguir:
;;; note: source file /home/user/projects/guix/guix/progress.scm ;;; newer than compiled /home/user/projects/guix/guix/progress.go
Esta é apenas uma nota e você pode ignorá-la com segurança. Você pode se
livrar da mensagem executando make -j4
. Até que você faça isso, o
Guile será executado um pouco mais devagar porque interpretará o código em
vez de usar arquivos de objeto Guile preparados (.go).
Você pode executar make
automaticamente enquanto trabalha usando
watchexec
do pacote watchexec
. Por exemplo, para compilar
novamente cada vez que você atualizar um arquivo de pacote, execute
‘watchexec -w gnu/packages -- make -j4’.
O sinalizador -E
para sudo
garante que GUILE_LOAD_PATH
esteja configurado
corretamente para que guix-daemon
e as ferramentas que ele usa
possam encontrar os módulos Guile necessários.
Próximo: A configuração perfeita, Anterior: Executando o conjunto de testes, Acima: Contribuindo [Conteúdo][Índice]