Próximo: , Anterior: , Acima: Contribuindo   [Conteúdo][Índice]


22.4 Executando guix antes dele ser instalado

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’.


Notas de Rodapé

(45)

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]