GNU Guix, la alternativa declarativa que sustituye a Arch y NixOS
El autor transiciona de Arch Linux a GNU Guix tras experimentar NixOS y valorar la coherencia de Guix en lenguaje, init y filosofía libre.
Para los que han usado Arch Linux, la estabilidad a largo plazo y la reproducibilidad de Guix son atractivas. El artículo abre describiendo la experiencia con Arch: un servidor doméstico con Home Assistant, DNS local y contenedores, donde la configuración se dispersa entre /etc, /usr y unitarios de systemd.
Luego se compara NixOS. Se destaca que NixOS permite declarar el estado del sistema, pero la documentación está fragmentada, la interfaz nix y los flakes son experimentales y el ecosistema se divide entre wikis.
Al introducir GNU Guix, el autor señala cuatro diferenciadores clave:
- Lenguaje: Guix usa GNU Guile Scheme, un lenguaje de propósito general, frente al DSL de Nix. Para un usuario de Emacs Lisp, Scheme es familiar y permite macros y módulos.
- Init: Guix System emplea GNU Shepherd como gestor de servicios; todos los servicios se definen en Guile, lo que evita la separación entre unidades, archivos de configuración y directorios de tmpfiles.
- Documentación: La referencia oficial de Guix es unificada y completa, sin el desorden de wikis dispersos.
- Filosofía: Guix sigue estrictamente las Directrices de la Distribución Libre de GNU, entregando el kernel Linux‑libre y software libre por defecto, lo que reduce dependencias de firmware propietario.
El autor explica cómo la configuración de Guix se almacena en un único archivo Org‑mode (guix.org) y se versiona con Git. Con la extensión simple-service se pueden añadir contenedores y ajustes de Nginx sin tocar la declaración base, algo que en otras distribuciones requeriría varios archivos.
Ejemplo de bloque de configuración para un contenedor Home Assistant y su proxy Nginx:
;; Home Assistant container
(simple-service 'home‑assistant‑container oci‑service‑type
(oci‑extension
(containers
(list
(oci‑container‑configuration
(provision "home‑assistant")
(image "ghcr.io/home‑assistant/home‑assistant:stable")))))
;; Inject Nginx reverse proxy
El artículo concluye que, aunque la selección de paquetes es más limitada, la pureza y la trazabilidad de Guix hacen que la administración de un servidor sea tan predecible como editar la configuración de Emacs.
Por qué importa
Para administradores que buscan evitar la “entropía” de configuraciones manuales, Guix ofrece un modelo de infraestructura declarativa totalmente codificado. La adopción implica un aprendizaje inicial en Scheme y la adaptación a Shepherd, pero la consistencia de la documentación y la garantía de software libre pueden justificar el cambio.
