Next: Ejecución de la batería de pruebas, Previous: Requisitos, Up: Contribuir [Contents][Index]
Si quiere picar en el mismo Guix se recomienda usar la última versión del repositorio Git:
git clone https://git.savannah.gnu.org/git/guix.git
¿Cómo se puede asegurar de que ha obtenido una copia auténtica del
repositorio? Para ello ejecute guix git authenticate
,
proporcionando la revisión y la huella de OpenPGP de la presentación
del canal (see Invocación de guix git authenticate
):
git fetch origin keyring:keyring guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
Esta orden termina con un código de salida cero cuando al finalizar correctamente; o imprime un mensaje de error y sale con un código de salida distinto a cero en otro caso.
Como puede ver, nos encontramos ante el problema del huevo y la gallina: es necesario haber instalado Guix. Durante la instalación habitual del sistema Guix (see Instalación del sistema) o Guix sobre otra distribución (see Instalación binaria) debería verificar la firma de OpenPGP del medio de instalación. Este paso es el primer eslabón de la cadena de confianza.
El modo más fácil de preparar un entorno de desarrollo para Guix es, por supuesto, ¡usando Guix! Las siguientes órdenes inician un nuevo intérprete donde todas las dependencias y las variables de entorno apropiadas están listas para picar código en Guix:
guix shell -D guix -CPW
or even, from within a Git worktree for Guix:
guix shell -CPW
If -C (short for --container) is not supported on your
system, try --pure
instead of -CPW. See Invoking guix shell
, for more information on that command.
Si no puede usar Guix para construir Guix desde una copia de trabajo, son necesarios los paquetes siguientes además de los mencionados en las instrucciones de instalación (see Requisitos).
En Guix se pueden añadir dependencias adicionales ejecutando en su lugar
guix shell
:
guix shell -D guix help2man git strace --pure
From there you can generate the build system infrastructure using Autoconf and Automake:
./bootstrap
Si se produce un error como el siguiente:
configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
probablemente significa que Autoconf no pudo encontrar el archivo pkg.m4, que proporciona pkg-config. Asegúrese de que pkg.m4 está disponible. Lo mismo aplica para el conjunto de macros guile.m4 que proporciona Guile. Por ejemplo, si ha instalado Automake en /usr/local, no va a buscar archivos .m4 en /usr/share. En ese caso tiene que ejecutar la siguiente orden:
export ACLOCAL_PATH=/usr/share/aclocal
See Macro Search Path in The GNU Automake Manual para más información.
Entonces, ejecute:
./configure
Optionally, --localstatedir
and --sysconfdir
can also be
provided as arguments. By default, localstatedir
is /var
(see El almacén, for information about this) and sysconfdir
is
/etc. Note that you will probably not run make install
at
the end (you don’t have to) but it’s still important to pass the right
localstatedir
and sysconfdir
values, which get recorded in the
(guix config)
Guile module.
Finalmente, puede construir Guix y, si se siente inclinado a ello, ejecutar los tests (see Ejecución de la batería de pruebas):
make make check
If anything fails, take a look at installation instructions (see Instalación) or send a message to the mailing list.
De aquí en adelante, puede identificar todos las revisiones incluidas en su copia ejecutando:
guix git authenticate \ 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
The first run takes a couple of minutes, but subsequent runs are faster. On subsequent runs, you can run the command without any arguments since the introduction (the commit ID and OpenPGP fingerprints above) will have been recorded57:
guix git authenticate
When your configuration for your local Git repository doesn’t match the
default one, you can provide the reference for the keyring
branch
via the -k option. The following example assumes that you have
a Git remote called ‘myremote’ pointing to the official repository:
guix git authenticate \ -k myremote/keyring \ 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
See Invocación de guix git authenticate
, for more information on this command.
Nota: By default, hooks are installed such that
guix git authenticate
is invoked anytime you rungit pull
orgit push
.
Después de actualizar el repositorio, make
podría fallar con un
error similar al del ejemplo siguiente:
error: failed to load 'gnu/packages/linux.scm': ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed
Esto significa que uno de los tipos de registro que Guix define (en este
ejemplo, el registro origin
) ha cambiado, y todo guix necesita ser
recompilado para tener en cuenta ese cambio. Para ello, ejecute
make clean-go
seguido de make
.
Should make
fail with an Automake error message after updating,
you need to repeat the steps outlined in this section, commencing with
./bootstrap
.
Next: Ejecución de la batería de pruebas, Previous: Requisitos, Up: Contribuir [Contents][Index]