NIXOS EN 5 MINUTOS

Este se plantó hace 8 días y fué regado hace 0 días

NixOS en 5 minutos

Refs: 1 2 3 4 5 6 7 8

¿Que es NixOS?

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

El proceso de instalación es relativamente estándar:
  1. Descargamos la imagen del sistema desde la página oficial de NixOS.

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

¿Que son los flakes?

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.

Fuentes

Footnotes

  1. https://www.youtube.com/watch?v=2QjzI5dXwDY

  2. https://www.youtube.com/watch?v=ACybVzRvDhs

  3. https://www.youtube.com/watch?v=IiyBeR-Guqw

  4. https://www.youtube.com/watch?v=bV3hfalcSKs

  5. https://www.youtube.com/watch?v=43VvFgPsPtY

  6. https://www.youtube.com/watch?v=OFGyKMSJzXY

  7. https://nixos-and-flakes.thiscute.world/

  8. https://nix.dev/tutorials/nix-language