NIXOS EN 5 MINUTOS
EsteNixOS en 5 minutos
NixOS es una distribución de Linux que se configura mediante ficheros y un lenguaje de programación declarativo. Esto quiere decir que, en lugar de configurar el sistema e instalar paquetes mediante comandos o interfaz gráfica, indicaremos en los ficheros de configuraciones que queremos instalar y cómo va a comportarse, y NixOS tratará de llevarlo a cabo.
Estos cambios se consideran estados del sistema, y podemos tanto cambiarlos en caliente como volver a puntos anteriores de forma sencilla.
NixOS gira alrededor del gestor de paquetes Nix, y el languaje declarativo con el mismo nombre. Son estos los componentes que le dan su “sabor” tan característico.
Todo esto, si lo combinamos con el uso de git, favorece un flujo de trabajo donde puedes mantener un repo con el estado exacto de tu sistema, o sistemas, haciendo que sea fácil reproducirlos o crear derivaciones.
Instalación
-
Descargamos la imagen del sistema desde la página oficial de NixOS.
-
Arrancamos desde la imagen y empezamos el proceso de instalación. 2.1. De aquí lo único importante es hacer check en “Allow unfree software” si queremos usar software privativo.
- Se recomienda tener al menos 100gb de espacio en disco, ya que al guardar los estados del sistema será fácil que se llene.
Nix Flakes y nix-command
Ahora que tenemos el sistema instalado, lo primero es habilitar el uso de flakes y nix-command, que a día de hoy todavía son funciones experimentales, pero muy importantes.
Son ficheros de configuración que utilizan Nix como lenguaje para declarar las dependencias y configuraciones del sistema, o incluso instrucciones de compilación.
Es muy similar a otros ficheros para declarar dependencias en proyectos de software, como package.json en Node.js o requirements.txt en Python. Del mismo modo, también genera un archivo .lock para “congelar” las versiones de los paquetes.
Esto último es super interesante ya que junto al flake.nix permite mantener los estados del sistema reproducibles y versionados.