Oct 25, 2023

By Graham Christensen

Nix Survival Mode: sheltering Nix from macOS upgrades

Tens of thousands of macOS users install Nix using the Determinate Nix Installer, and I'm one of them. Last February, we introduced the Determinate Nix Installer to solve a multitude of reliability problems and failure conditions. This has been a rousing success, but we always aspire to reduce friction and improve the user experience. Our goal is 100% success with zero fuss.

Despite a rounding error of install-time failures, hilariously, most Nix installations are broken after macOS upgrades. Not great: this is not the user experience we're going for! People usually like software better when it stays installed, and you'd think Nix—striving for predictability—wouldn't do this.

Well, good news: Nix installations from the Determinate Nix Installer after version v0.14 survive macOS upgrades. 🎉

The latest release of our installer now creates a global Launch Daemon which restores the necessary pieces of Nix's installation at boot time.

That means the Nix you installed stays installed, eliminating the largest source of friction for macOS users and demonstrating our commitment to being the most reliable, resilient, and safest way to install Nix.

Try it on your Mac today:

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install

Or integrate the most reliable Nix installer in GitHub Actions:

- uses: DeterminateSystems/nix-installer-action@main

Our position on stable flakes

Nix flakes are currently marked "experimental" in the Nix project. Our position as a company is that the on-the-ground experience of actually using flakes has been quite stable for some time and that you should consider flakes stable and start using them today.

You can read more about our position here on our blog.