Esta herramienta acaba de matar Homebrew.

Homebrew ha dominado la gestión de paquetes en macOS durante años, pero un competidor está aquí para reemplazarlo por completo. Descubre por qué los desarrolladores están cambiando a Nix para una configuración de Mac totalmente reproducible y declarativa a partir de un solo archivo.

Stork.AI
Hero image for: Esta herramienta acaba de matar Homebrew.
💡

TL;DR / Key Takeaways

Homebrew ha dominado la gestión de paquetes en macOS durante años, pero un competidor está aquí para reemplazarlo por completo. Descubre por qué los desarrolladores están cambiando a Nix para una configuración de Mac totalmente reproducible y declarativa a partir de un solo archivo.

Tu configuración de Mac es un castillo de naipes.

La mayoría de los desarrolladores de macOS viven dentro de una pila precaria de herramientas. Homebrew instala todo, desde `git` hasta `ffmpeg`, ASDF o NVM manejan las versiones de los lenguajes, y alguna combinación de scripts de shell, clones de MacUp o gists privados de "bootstrap" intentan unirlo todo. Cada nuevo Mac se convierte en un proyecto de fin de semana de copiar y pegar comandos `brew install` y rezar para que `brew bundle` siga coincidiendo con la realidad.

Esa realidad se desvanece casi de inmediato. Instalas una utilidad temporal para un proyecto de cliente, ajustas una configuración de `defaults write`, fijas Node 18 para una aplicación y Node 20 para otra, y te olvidas de ello. Seis meses después, tu portátil funciona, pero no tienes idea de por qué, y tu `Brewfile` o archivos de configuración solo capturan aproximadamente el 60% de lo que realmente importa.

El desajuste de configuración es el impuesto silencioso de cada Mac que posees. Nadie rastrea qué servicio `launchctl` oscuro deshabilitaste, qué versión de Python instalaste con pyenv en lugar de Homebrew, o qué plist de `~/Library` editaste a mano a las 2 a.m. Intenta recrear esa máquina en un Mac nuevo y descubrirás que "la misma configuración" es realmente una aproximación burda, no un estado reproducible.

Los desarrolladores siguen intentando salir de esto mediante la creación de archivos `setup.sh` cada vez más elaborados y repositorios de archivos ocultos. Podrías tener: - `brew bundle dump` para tomar instantáneas de los paquetes - Configuraciones de ASDF o NVM para los entornos de ejecución - Un script `bootstrap` que enlaza los archivos ocultos y ejecuta más de 20 comandos

Todo eso sigue siendo imperativo: “haz esto, luego aquello, y tal vez esta otra cosa si no está instalada.” Omite un paso, o ejecútalo en una versión de macOS ligeramente diferente, y todo el proceso comienza a tambalearse.

El sueño se ve muy diferente: un único archivo controlado por versiones que describe todo tu entorno. Una configuración declarativa que dice “este Mac tiene estos paquetes, estas aplicaciones de la Mac App Store, estas versiones de lenguajes y estos ajustes del sistema”, y una herramienta que hace que la realidad coincida con el archivo—en cualquier Mac, en cualquier momento.

En comparación con eso, los flujos de trabajo centrados en Homebrew de hoy se sienten como si estuvieras creando una casa de cartas. Una actualización incorrecta, un tap ausente, una advertencia silenciosa de `brew doctor`, y tu configuración "estándar" se desmorona en horas de reparación manual.

La Configuración Única que las Gobierna a Todas

Ilustración: La Única Configuración que lo Gobierna Todo
Ilustración: La Única Configuración que lo Gobierna Todo

Homebrew se siente como una orden: `brew install vim`, presionas enter, y esperas que nada explote. Nix se siente como un contrato. Describes el estado exacto en el que debería estar tu Mac, y el trabajo de Nix es hacer que la realidad coincida con esa descripción, cada vez, en cualquier máquina.

“Puramente funcional” suena académico, pero para los desarrolladores se traduce en una cosa: predecibilidad. Dado el mismo archivo de configuración y las mismas entradas, Nix siempre produce las mismas salidas: versiones idénticas, dependencias idénticas, configuraciones del sistema idénticas. Sin actualizaciones sorpresivas, sin fantasmas de “funciona en mi máquina”.

Las herramientas tradicionales como Homebrew existen en un mundo imperativo. Ejecutas una serie de comandos únicos: - `brew install vim` - `brew upgrade` - `brew uninstall node`

Tu sistema se convierte en la suma de cada comando que has escrito, más cualquier efecto secundario que esos comandos hayan tenido. Si te saltas un paso en un nuevo Mac, tu configuración se aleja en silencio de la original.

Nix lo convierte en un modelo declarativo. Mantienes una configuración que establece, en código, “este Mac debe tener `vim`, `neovim`, `nodejs-20`, `python-3.11`, estos archivos de configuración y estos valores predeterminados del sistema.” Luego, Nix construye ese estado desde cero, como si tu Mac fuera una nueva máquina virtual, y lo aplica de manera atómica.

Atómico es la palabra clave. Las instalaciones de Nix residen en rutas de almacenamiento con direcciones de contenido, por lo que las actualizaciones se convierten en transacciones: o la nueva configuración se compila con éxito, o tu sistema permanece exactamente como estaba. Si una actualización rompe tu cadena de herramientas, ejecutas un único comando de retroceso y reviertes todo el entorno: binarios, bibliotecas, configuración—como si tuvieras una máquina del tiempo local.

Debido a que cada paquete vive en su propio prefijo aislado, Nix instala múltiples versiones de la misma herramienta sin conflictos. Puedes tener tres versiones diferentes de `node`, un `python` fijado para un proyecto y un `git` de última generación para otro, todos coexistiendo sin scripts de shim ni trucos de gestores de versiones.

Lo más importante es que Nix trata toda tu configuración como código. Tus archivos de Nix se convierten en una pila personal de Infraestructura como Código: herramientas de línea de comandos, aplicaciones GUI, instalaciones de la Mac App Store, configuración de shell, e incluso ajustes de `defaults write`, todo bajo control de versiones. Una nueva Mac deja de ser un proyecto de fin de semana y se convierte en un `git clone` y un único comando de construcción.

Cómo Nix Conquistó el Ecosistema de Apple

Nix comenzó su vida en 2003 como un proyecto de doctorado en los Países Bajos por Eelco Dolstra, un experimento en gestión de paquetes puramente funcional. Esa investigación se consolidó en el lenguaje Nix y luego en NixOS, una distribución de Linux donde cada paquete, servicio y ajuste del sistema fluye a partir de configuraciones declarativas de Nix. Para la década de 2010, NixOS se había convertido en una alternativa seria para sistemas Linux reproducibles en círculos académicos, de DevOps y de laboratorio en casa, respaldada por miles de colaboradores y más de 80,000 paquetes en Nixpkgs.

Los desarrolladores de Mac en su mayoría observaron desde la distancia hasta que llegó Nix Darwin. Construido como una capa sobre Nix, Nix Darwin traduce esos módulos al estilo NixOS en algo que entiende el núcleo Unix de macOS, Darwin. Gestiona demonios de inicio, agentes de usuario, entornos de shell y configuraciones del sistema de la misma manera en que NixOS gestiona las unidades y servicios de `systemd`.

En cuanto a relaciones, piensa en tres capas. Nix es el motor: el gestor de paquetes y el lenguaje. Nixpkgs es el enorme repositorio de definiciones de software y módulos de configuración. Nix Darwin es el enlace que mapea esas abstracciones a macOS, exponiendo opciones para todo, desde herramientas de línea de comandos al estilo `brew` hasta configuraciones de autohide del Dock.

En lugar de esparcir el estado a través de `/usr/local`, archivos ocultos aleatorios y ajustes ocultos en plist, Nix Darwin centraliza el control. Un solo flake puede declarar: - Qué paquetes de Nixpkgs instalar - Qué configuraciones predeterminadas del sistema Mac establecer - Qué servicios habilitar o deshabilitar

Nix Darwin no es un proyecto de fin de semana. Vive en GitHub con cientos de colaboradores, un triage activo de problemas y lanzamientos regulares que siguen las nuevas versiones de macOS. Los usuarios avanzados lo integran en sus repositorios de Mis Dotfiles, y luego reconstruyen Macs enteros con un solo `darwin-rebuild switch` después de una instalación limpia.

Cualquiera que desee ver cómo se integra este ecosistema puede comenzar en el Sitio Oficial de Nix y NixOS y en el repositorio Nix Darwin. Juntos, convierten macOS de un copo de nieve ajustado a mano en un artefacto que puedes versionar, revisar y revertir como cualquier otro código.

Las copas ya no son solo para el desayuno.

Los flacos suenan como un cereal de desayuno, pero en el mundo de Nix son el estándar de facto de la comunidad para configuración reproducible. En lugar de un conjunto desordenado de scripts de shell, Brewfiles y herramientas de sincronización, un solo flake define exactamente cómo debería lucir tu Mac: herramientas, servicios, e incluso qué aplicaciones de la Mac App Store esperas que existan. Tienes una única fuente de verdad, y Nix se encarga del resto.

En el centro se encuentra `flake.nix`, un manifiesto en texto plano escrito en el lenguaje Nix. Tiene dos grandes ideas: entradas y salidas. Las entradas describen de qué depende tu configuración; las salidas describen lo que produce tu configuración.

Las entradas generalmente incluyen: - `nixpkgs` (la colección principal de paquetes Nix) - Otros Flakes de la comunidad (como los módulos de `nix-darwin`) - Tus propios Flakes compartidos para trabajo o proyectos secundarios

Las salidas convierten esos ingredientes en algo que realmente puedes ejecutar. Un `flake.nix` podría exponer: - `packages` para herramientas de línea de comandos y entornos de ejecución de lenguajes - `darwinConfigurations` para configuraciones completas de macOS - `devShells` para entornos por proyecto

Ejecuta `darwin-rebuild switch --flake .#tu-nombre-de-host` y Nix construye las salidas declaradas en tu flake, luego las activa en tu Mac. Cambia `vim` por `neovim`, añade `zellij`, recompila y tu sistema se transforma al nuevo estado de un solo golpe. Sin necesidad de `brew install` manual, sin preguntarte qué gestor de versiones controla qué binario.

Si `flake.nix` es la receta, `flake.lock` es la despensa herméticamente sellada. Este archivo JSON fija cada entrada a una revisión exacta de Git o versión, así que cuando tú y tus compañeros construyen desde el mismo repositorio, obtienen toolchains y configuraciones idénticas. Sin sorpresas de “funciona en mi máquina”, sin actualizaciones silenciosas porque `nixpkgs` avanzó de la noche a la mañana.

Hay un pero: los Flakes permanecen oficialmente “experimentales” en Nix, ocultos tras un indicador de función. La realidad en el terreno es diferente. Casi todas las guías modernas de Nix, plantillas iniciales y configuraciones serias —incluyendo configuraciones populares como Nix Darwin en Mac— asumen que utilizas Flakes porque son lo suficientemente estables, potentes y finalmente hacen que la historia de reproducibilidad de Nix se sienta completa.

Construyendo tu Mac inmortal, paso a paso

Ilustración: Construyendo tu Mac inmortal, paso a paso
Ilustración: Construyendo tu Mac inmortal, paso a paso

Instalar Nix en macOS comienza como cualquier otra herramienta de desarrollo: un instalador descargable con curl, una barra de progreso y una breve espera mientras se integra en tu shell. Después de eso, el flujo de trabajo se desvía inmediatamente del mundo de Homebrew. Creas un directorio dedicado `~/.nix` (o similar), y luego colocas un flake inicial de Nix Darwin obtenido de GitHub o una plantilla como My Dotfiles.

Ese archivo flake se convierte en la fuente de verdad de tu Mac. Declara qué paquetes, servicios y configuraciones del sistema deben existir en la máquina, desde herramientas de línea de comandos hasta aplicaciones de la Mac App Store. En lugar de ejecutar `brew install` de forma ad hoc, editas una sola expresión Nix que describe el estado completo del sistema.

Todo orbita en un solo comando: `darwin-rebuild switch`. Nix lee tu flake, evalúa la configuración, construye lo que falta y cambia atómicamente tu Mac a ese nuevo estado. Sin buscar en el historial de la terminal, sin adivinar qué archivo de configuración activó qué.

Cambia una línea en la configuración, ejecuta `darwin-rebuild switch` y la máquina se adapta para coincidir. En el video, el presentador reemplaza `vim` con neovim en la lista de paquetes y agrega `zellij` (escrito incorrectamente como "zelage" en la transcripción) a pesar de que nunca se había instalado antes. Después de la reconstrucción, `nvim` está disponible en todo el sistema, `zellij` se ejecuta al instante, y el antiguo binario de Vim ya no proviene de Nix Darwin.

Ese bucle de editar y cambiar convierte la configuración en revisión de código en lugar de un ritual. ¿Quieres probar una herramienta temporalmente? Agrégala al flake, recompila, pruébala y luego elimínala y recompila nuevamente; Nix recoge automáticamente las versiones no utilizadas. Cada cambio es explícito, controlado por versiones y repetible en Macs.

En comparación con una configuración tradicional de Homebrew, esto reemplaza un despliegue de comandos y scripts. Una máquina nueva típica podría involucrar: - De 30 a 80 llamadas `brew install` y `brew install --cask` - Un `brew bundle dump` o exportación de MacUp - Ediciones manuales de archivos de configuración y ajustes de macOS

Con Nix Darwin y flakes, codificas todo ese ritual una vez. Una nueva Mac solo necesita tener Nix instalado y el flake clonado; `darwin-rebuild switch` reconstruye tu entorno de un solo golpe, desde herramientas de línea de comandos hasta configuraciones del sistema y aplicaciones de la Mac App Store, sin necesidad de una búsqueda exhaustiva.

Nix Maneja Más de lo Que Piensas

Homebrew piensa en términos de herramientas de línea de comandos y casks; Nix piensa en términos de mundos enteros. Una vez que tienes un flake de Nix Darwin en su lugar, tu Mac deja de ser un copo de nieve único y comienza a comportarse como un artefacto de construcción reproducible, desde el shell que usas hasta la forma en que se anima tu Dock.

La mayoría de las personas descubren Nix a través de `nixpkgs` y sus decenas de miles de paquetes de línea de comandos, pero el alcance es mucho más amplio. Un solo flake puede declarar tus herramientas de desarrollo, aplicaciones GUI, servicios del sistema, fuentes e incluso agentes de lanzamiento, todo anclado a versiones exactas para que un Mac nuevo en 2025 coincida bit a bit con tu laptop de 2023.

La integración de la Mac App Store es donde generalmente se sorprenden. Con Nix Darwin conectado, puedes declarar aplicaciones por ID de Aplicación y Nix las descargará de la Mac App Store siempre que estén vinculadas a tu historial de compras de Apple ID. Tu configuración puede literalmente decir “instalar `409201541`” y obtienes Pages, o “`497799835`” y obtienes Xcode, sin necesidad de hacer clic manualmente en la App Store.

Ese movimiento reemplaza silenciosamente una gran parte de lo que MacUp o los scripts de respaldo hechos a mano intentaron resolver. En lugar de exportar un Brewfile y esperar recordar qué aplicaciones de la App Store utilizaste, tu flake se convierte en la lista canónica de todo lo que debería existir en la máquina, sin importar cómo lo distribuya Apple.

Los módulos de Nix Darwin llevan la personalización aún más lejos al tratar las preferencias de macOS como código. Puedes configurar de manera declarativa el comportamiento del Dock, la tasa de repetición de teclas, el toque para hacer clic en el trackpad, las opciones de visibilidad del Finder y las esquinas activas utilizando opciones estructuradas de Nix en lugar de los frágiles comandos `defaults write`. Un `darwin-rebuild switch` se convierte en el equivalente a navegar por docenas de paneles de Configuración del Sistema de una sola vez.

Eso convierte los rituales manuales de post-instalación en un solo commit. ¿Nueva máquina? Clona tus dotfiles, ejecuta un comando y tu Dock se oculta automáticamente, la repetición de teclas sigue tu cadencia preferida de 15 ms, y tu shell, fuentes y gestor de ventanas aparecen exactamente como antes.

Cualquiera que tenga curiosidad sobre hasta dónde llega esto puede explorar nix-darwin – Configuración del sistema basada en Nix para macOS. Entre esos módulos y un buen flake, Nix no solo reemplaza Homebrew; absorbe silenciosamente herramientas de respaldo, listas de verificación de configuración y años de memoria muscular en un solo script que se puede reproducir.

No Tienes que Romper con Homebrew

Los aficionados a Homebrew no tienen que volcar una mesa y reconstruir todo en Nix desde el primer día. Una estrategia mucho menos estresante trata a Nix como el director y a Homebrew como una de las secciones de la orquesta. Mantienes tus herramientas existentes, pero entregas la programación y el estado a un solo archivo de configuración.

Las configuraciones modernas de Nix Darwin pueden gestionar Homebrew en sí mismas. En un flake, activas el módulo de Homebrew, lo diriges a tu instalación existente y luego declaras `brew.packages` y `casks` junto a tus paquetes de Nix. Cuando ejecutas `darwin-rebuild switch`, Nix llama a `brew install`, `brew uninstall` y `brew upgrade` por ti, así que tu entorno de Brew se convierte en otra salida reproducible.

Este enfoque híbrido crea un camino de migración ideal. Puedes empezar trasladando las herramientas CLI básicas — `git`, `node`, `python`, `fzf`, `ripgrep` — a `environment.systemPackages` o Home Manager, mientras dejas las aplicaciones GUI como casks de Brew. Con el tiempo, reemplazas las fórmulas de Brew con equivalentes de Nix a medida que los encuentras en nixpkgs.

Nixpkgs actualmente ofrece más de 80,000 paquetes, pero Homebrew Cask sigue ganando en cuanto a la cobertura de aplicaciones específicas de Mac. Esa larga cola incluye utilidades poco conocidas, herramientas de menú en la barra de estado de nicho y extraños instaladores de proveedores únicos que pueden que nunca se incluyan en nixpkgs. Declarar esos como casks de Brew bajo Nix significa que no pierdes nada mientras estandarizas el resto de tu pila.

Una configuración típica de "puente" termina con tres capas gestionadas desde un solo flake:

  • 1Paquetes Nix para todas las herramientas CLI esenciales y entornos de ejecución de lenguajes.
  • 2Módulos de Nix para configuraciones del sistema y archivos dotfiles
  • 3Casks de Homebrew para aplicaciones GUI y utilidades de casos extremos

Aún ejecutas `darwin-rebuild switch` como tu única fuente de verdad. Detrás de escena, Nix se actualiza a sí mismo, aplica los ajustes predeterminados de macOS, sincroniza tus dotfiles y luego impulsa a Homebrew para instalar o eliminar lo que hayas listado, todo sin que tengas que tocar `brew` directamente.

Por qué todos no están usando Nix (aún)

Ilustración: Por qué todos no están usando Nix (todavía)
Ilustración: Por qué todos no están usando Nix (todavía)

La mayoría de las personas se desaniman con Nix justo en el punto donde este video se adentra: la "curva de aprendizaje realmente, realmente empinada". Homebrew requiere un solo comando para instalar `wget`; Nix te recibe con un nuevo lenguaje, un nuevo modelo mental y un árbol de directorios que parece que tu Mac se tragó una función hash. Los usuarios avanzados llaman a ese intercambio una ganga; todos los demás lo consideran un fin de semana perdido en documentación.

Primer muro: el lenguaje Nix en sí. Se parece un poco a JSON y un poco a Haskell, pero hace cosas que ninguno de esos hace. Escribes conjuntos de atributos, lambdas y módulos solo para decir “instalar `neovim`”, y pequeños errores de sintaxis a menudo se presentan como errores de 10 líneas sobre “falta el atributo ‘packages’.”

Segunda pared: conceptos de programación funcional que nunca pediste. Nix insiste en que todo sea puro e inmutable, así que en lugar de "ejecutar este script", defines derivaciones que describen cómo debería ser una compilación. Eso da sus frutos en reproducibilidad, pero te obliga a pensar en términos de entradas, salidas y evaluación, no en "ejecutar un comando de bash y esperar lo mejor".

Luego llega la tienda Nix, el bosque de rutas con direcciones basadas en contenido `/nix/store` que hacen que Nix sea mágico y frustrante. Cada resultado de compilación vive bajo un hash como `/nix/store/abcd1234-neovim-0.9.1`, lo que garantiza aislamiento pero hace que la manipulación ad-hoc se sienta hostil. No "solo editas un archivo de configuración"; editas un flake, recompilas y dejas que Nix recolecte basura de generaciones antiguas.

La depuración de derivaciones añade otra capa de dolor. Cuando un paquete falla al construir, estás mirando expresiones de Nix, scripts de construcción y, a veces, peculiaridades multiplataforma heredadas de NixOS. Los errores de Homebrew generalmente dicen "dependencia faltante"; los errores de Nix a menudo dicen "el valor es una función mientras se esperaba un conjunto" y esperan que sepas por qué.

Para instalaciones simples, Nix definitivamente parece excesivo. Si solo necesitas `node`, `python` y `ffmpeg`, el comando `brew install` de Homebrew se siente más rápido, más claro y mucho menos intrusivo que habilitar flakes, configurar Nix Darwin y comprometer un `flake.nix` solo para obtener una terminal. El video incluso muestra que la configuración inicial se extiende a través de múltiples comandos, flags y ediciones de configuración antes de que suceda algo divertido.

Entre los aficionados, Nix ha ganado un cumplido indirecto: el “peor gestor de paquetes, excepto por todos los demás”. Pagas por adelantado con complejidad, documentación oscura y errores desconcertantes, y a cambio obtienes un sistema que recreará tu Mac entero a demanda. Para muchos desarrolladores, ese poder finalmente supera el dolor, aunque no desde el primer día.

El flujo de trabajo de nivel divino que te espera

El pago de nivel divino con Nix se ve así: un Mac nuevo pasa de estar envuelto en plástico a convertirse en una estación de trabajo de desarrollo completamente armada en menos de 10 minutos. Inicias sesión en Git, clonas tu repositorio de My Dotfiles, ejecutas un solo `darwin-rebuild switch --flake .`, y ves cómo tu editor, terminales, herramientas de lenguaje, fuentes e incluso las aplicaciones de la Mac App Store reaparecen exactamente como antes. Sin buscar instaladores, sin “oh, cierto, olvidé instalar jq.”

Bajo el capó, Nix trata tu entorno completo como datos. Tu flake de Nix Darwin declara cada paquete, servicio y ajuste predeterminado de macOS como código, de modo que el estado de tu máquina se convierte en una función pura de un commit de Git. Revierte ese commit y Nix revierte atómicamente tus herramientas, configuraciones y ajustes del sistema de un solo golpe.

Para los equipos, esto convierte la integración de nuevos empleados de un ritual de varias horas en un solo comando documentado. Un nuevo empleado clona el repositorio, ejecuta el flake y entra en un entorno idéntico al de producción y al de la laptop de cada otro ingeniero: misma versión de `node`, mismo `postgres`, mismas herramientas de línea de comandos, mismos dotfiles. "Funciona en mi máquina" desaparece cuando "mi máquina" es una construcción reproducible de Nix.

El trabajo diario también se vuelve más seguro. ¿Quieres probar Python 3.13, un `clang` de última generación, o una nueva configuración de `zellij`? Los fijas en una rama, ejecutas `darwin-rebuild` y Nix construye la nueva generación junto con la anterior. Si algo falla, un solo comando de retroceso restaura la generación anterior, sin enlaces simbólicos colgantes ni paquetes medio desinstalados.

Ese modelo atómico fomenta la experimentación que nunca arriesgarías en una configuración Homebrew ajustada manualmente. Puedes mantener: - Un flake “de trabajo” estable - Un flake “beta” con nuevas herramientas - Flakes por proyecto con dependencias fijas

Cambiar entre ellos se convierte en cuestión de segundos, no en un fin de semana de reinstalar las Herramientas de Línea de Comando de Xcode.

Los desarrolladores ya documentan este flujo de trabajo en la práctica; guías como Nix en macOS – el mejor Homebrew explican cómo reemplazar Homebrew por completo con configuraciones declarativas de Nix. Una vez que experimentas un Mac nuevo materializándose a partir de un commit de Git, cada script de configuración ad-hoc se siente como si estuvieras ensamblando tu entorno con piedras.

¿Tomarás la píldora roja?

¿Curioso pero solamente teórico sobre Nix? Comienza tratando Nix como un entorno virtual desechable y más inteligente en lugar de una nueva religión para tu Mac. Instala Nix, abre una carpeta de proyecto y ejecuta `nix-shell -p <paquete>` para crear un entorno aislado que desaparece cuando cierras la terminal. Sin instalaciones globales, sin limpieza de `brew uninstall`, sin riesgo para tu pila existente.

Usa ese comando como tus ruedas de entrenamiento. ¿Necesitas `jq`, `nodejs` y `postgresql` para un proyecto secundario? Ejecuta `nix-shell -p jq nodejs postgresql` y trabaja dentro de ese shell. Obtienes herramientas reproducibles por proyecto sin modificar tu sistema PATH ni reescribir tus archivos de configuración.

Una vez que eso se sienta normal, comienza a capturar estos entornos ad-hoc en archivos sencillos `.nix` que estén versionados en tu repositorio. Un `shell.nix` mínimo que fije `nodejs-20_x` y `pnpm` ya supera una línea en el README que dice "instala Node de alguna manera". Los compañeros de equipo ejecutan `nix-shell` y aterrizan en el mismo entorno exacto, independientemente de cómo se vea su configuración de Homebrew.

Cuando estés listo para ver cómo luce un Mac totalmente declarativo, revisa las configuraciones de otras personas. Explora Mis Dotfiles del autor del video en GitHub: Mis Dotfiles. Luego busca en GitHub `nix-darwin flake.nix` y estudia cómo la gente lo conecta:

  • 1módulos `nix-darwin` para servicios del sistema
  • 2`home-manager` para archivos de configuración a nivel de usuario
  • 3integración `mas` para aplicaciones de Mac App Store

Trata esos repos como documentación viva. Copia un pequeño fragmento—una fuente, una única herramienta de línea de comandos, un valor predeterminado del sistema—en tu propio flake y ejecuta `darwin-rebuild switch`. Si se rompe, revertir un archivo y estarás de vuelta, sin necesidad de una sesión de `brew doctor`.

Así que aquí está la pregunta incómoda: ¿justifica la comodidad a corto plazo de `brew install` un futuro en el que tu Mac sigue siendo una rareza única que esperas que nunca muera? ¿O estás listo para pasar un fin de semana aprendiendo Nix para que tu próximo portátil, próximo trabajo y próxima instalación limpia se conviertan en un ritual de un solo comando en lugar de una búsqueda del tesoro que dure una semana?

Preguntas Frecuentes

¿Qué es Nix y en qué se diferencia de Homebrew?

Nix es un administrador de paquetes funcional que utiliza un archivo de configuración declarativo para definir el estado completo de tu sistema. A diferencia de los comandos imperativos de Homebrew (`brew install`), Nix construye tu entorno basado en un manifiesto, garantizando que sea reproducible y consistente en todas partes.

¿Puede Nix reemplazar completamente a Homebrew en macOS?

Sí, para muchos desarrolladores, Nix (a través de Nix Darwin) puede reemplazar a Homebrew, a los gestores de versiones y a los gestores de archivos de configuración. Incluso puede gestionar Homebrew mismo para instalar aplicaciones GUI o paquetes que aún no están en el repositorio de Nixpkgs, ofreciendo un único punto de control.

¿Qué son los Nix Flakes y por qué son importantes?

Los Nix Flakes son la forma moderna y estándar de definir proyectos Nix. Son manifiestos declarativos que bloquean dependencias, haciendo que tus configuraciones sean auto-contenidas y perfectamente reproducibles, lo que representa una gran ventaja sobre la gestión de paquetes tradicional.

¿Es realmente difícil aprender Nix?

Sí, Nix tiene una curva de aprendizaje notoriamente empinada debido a su lenguaje de programación funcional y conceptos nuevos como las derivaciones y la tienda Nix. Sin embargo, los defensores argumentan que la inversión inicial vale la pena, ya que ofrece un control y una reproducibilidad sin igual.

Frequently Asked Questions

¿Tomarás la píldora roja?
¿Curioso pero solamente teórico sobre Nix? Comienza tratando Nix como un entorno virtual desechable y más inteligente en lugar de una nueva religión para tu Mac. Instala Nix, abre una carpeta de proyecto y ejecuta `nix-shell -p <paquete>` para crear un entorno aislado que desaparece cuando cierras la terminal. Sin instalaciones globales, sin limpieza de `brew uninstall`, sin riesgo para tu pila existente.
¿Qué es Nix y en qué se diferencia de Homebrew?
Nix es un administrador de paquetes funcional que utiliza un archivo de configuración declarativo para definir el estado completo de tu sistema. A diferencia de los comandos imperativos de Homebrew , Nix construye tu entorno basado en un manifiesto, garantizando que sea reproducible y consistente en todas partes.
¿Puede Nix reemplazar completamente a Homebrew en macOS?
Sí, para muchos desarrolladores, Nix puede reemplazar a Homebrew, a los gestores de versiones y a los gestores de archivos de configuración. Incluso puede gestionar Homebrew mismo para instalar aplicaciones GUI o paquetes que aún no están en el repositorio de Nixpkgs, ofreciendo un único punto de control.
¿Qué son los Nix Flakes y por qué son importantes?
Los Nix Flakes son la forma moderna y estándar de definir proyectos Nix. Son manifiestos declarativos que bloquean dependencias, haciendo que tus configuraciones sean auto-contenidas y perfectamente reproducibles, lo que representa una gran ventaja sobre la gestión de paquetes tradicional.
¿Es realmente difícil aprender Nix?
Sí, Nix tiene una curva de aprendizaje notoriamente empinada debido a su lenguaje de programación funcional y conceptos nuevos como las derivaciones y la tienda Nix. Sin embargo, los defensores argumentan que la inversión inicial vale la pena, ya que ofrece un control y una reproducibilidad sin igual.
🚀Discover More

Stay Ahead of the AI Curve

Discover the best AI tools, agents, and MCP servers curated by Stork.AI. Find the right solutions to supercharge your workflow.

Back to all posts