Next: , Previous: , Up: Contribuir   [Contents][Index]


22.2 Ejecución de Guix antes de estar instalado

Para mantener un entorno de trabajo estable, encontrará útil probar los cambios hechos en su copia de trabajo local sin instalarlos realmente. De esa manera, puede distinguir entre su sombrero de “usuaria final” y el traje de “harapos”.

Para dicho fin, todas las herramientas de línea de comandos pueden ser usadas incluso si no ha ejecutado make install. Para hacerlo, primero necesita tener un entorno con todas las dependencias disponibles (see Construcción desde Git) y entonces añada al inicio de cada orden ./pre-inst-env (el guión pre-inst-env se encuentra en la raíz del árbol de compilación de Guix; se genera ejecutando ./bootstrap seguido de ./configure). A modo de ejemplo puede ver a continuación cómo construiría el paquete hello que se encuentre definido en su directorio de trabajo (esto asume que guix daemon se esté ejecutando en su sistema; no es un problema que la versión sea diferente):

$ ./pre-inst-env guix build hello

De manera similar, un ejemplo de una sesión de Guile con los módulos Guix disponibles:

$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'

;;; ("x86_64-linux")

… and for a REPL (see Using Guix Interactively):

$ ./pre-inst-env guile
scheme@(guile-user)> ,use(guix)
scheme@(guile-user)> ,use(gnu)
scheme@(guile-user)> (define serpientes
                       (fold-packages
                         (lambda (paquete lst)
                           (if (string-prefix? "python"
                                               (package-name paquete))
                               (cons paquete lst)
                               lst))
                         '()))
scheme@(guile-user)> (length serpientes)
$1 = 361

Si modifica el código del daemon o código auxiliar, o si guix-daemon no se está ejecutando todavía en su sistema, puede ejecutarlo desde el árbol de construción53:

$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild

El guión pre-inst-env proporciona valor a todas las variables de entorno necesarias para permitirlo, incluyendo PATH y GUILE_LOAD_PATH.

Fíjese que la orden ./pre-inst-env guix pull no actualiza el árbol de fuentes local; simplemente actualiza el enlace ~/.config/guix/latest (see Invocación de guix pull). Ejecute git pull si quiere actualizar su árbol de fuentes local.

A veces, especialmente si ha actualizado recientemente su repositorio, la ejecución de ./pre-inst-env imprimirá un mensaje similar al siguiente ejemplo:

;;; nota: archivo fuente /home/user/projects/guix/guix/progress.scm
;;; más reciente que el compilado /home/user/projects/guix/guix/progress.go

Esto es sólo una nota y se puede ignorar con seguridad. Puede deshacerse del mensaje ejecutando make -j4. Hasta que lo haga, Guile se ejecutará ligeramente más lento porque interpretará el código en lugar de utilizar archivos de objetos Guile preparados (.go).

Puede ejecutar make automáticamente mientras trabaja utilizando watchexec del paquete watchexec. Por ejemplo, para construir de nuevo cada vez que actualice un archivo de paquete, ejecute ‘watchexec -w gnu/packages -- make -j4’.


Footnotes

(53)

La opción -E a sudo asegura que GUILE_LOAD_PATH contiene la información correcta para que guix-daemon y las herramientas que usa puedan encontrar los módulos Guile que necesitan.


Next: , Previous: , Up: Contribuir   [Contents][Index]