background grid image
Image for post graphical-nix-installer
Nov 24, 2023 by Graham Christensen

A graphical installer for Nix

Update, 2024-11-08: Determinate Nix’s graphical installer has replaced this post’s installer. The original graphical installer discussed here is no longer maintained, and the links now point to the Determinate Nix package.

Here at Determinate Systems, our core goal is to make Nix better along as many axes as we possibly can. That has meant building major platforms geared toward Nix users, like FlakeHub. But sometimes smaller interventions can make a big difference and today I’m eager to tell you about one: a graphical installer for Nix users on macOS.

As Nix folks—and especially the Nix curious—know all too well, getting Nix to work on a machine in the first place is not trivial. We built the Determinate Nix Installer to make this as painless as possible on Linux, macOS, and Windows Subsystem for Linux (WSL). Invoke just one command and you’re off to the races with a next-generation installer written in Rust:

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

But this week we decided to take things even further and offer a one-click install option for macOS. Give it a try right now:

TODO

Install Determinate Nix on macOS now

Apple Silicon and Intel

Don’t worry: if you already have Nix installed, this won’t harm your system, as we’ve built the Determinate Nix Installer to gracefully handle previous Nix installs.

Why a graphical installer?

This is a great question because the standard Determinate Nix Installer requires just a single command. Why not stop there? Two reasons:

  1. The package is signed by Determinate Systems and checked for malware. This means that the chain of cryptographically validated trust is extended further than before and that you can be confident that the installer arrived intact (as in: not tampered with). We have more work to do here but this is a great first step.
  2. The package is readily usable by mobile device management (MDM) platforms like Mosyle. This can serve as a powerful way to distribute Nix to users in managed environments—without needing to run a shell command themselves.

Future plans

Nix users on the Determinate Systems Discord server have responded quite positively to the graphical installer thus far. But we’re not done just yet. We’re currently working on two things:

  1. Providing ability to customize the installation. Unfortunately, you can’t provide custom parameters for a given .pkg installer, which means you can’t tweak the knobs of your Nix installation during the installation process itself. But what you can do is generate custom .pkg files, and we’re currently working on ways to take user preferences and generate them on the fly.
  2. Expanding the range of what the Determinate Nix Installer—via the graphical installer—can achieve. That means going beyond installing Nix to installing Nix-related tools like Home Manager and nix-darwin. Imagine clicking a button and getting a whole suite of Nix tools ready to go—or clicking nothing and letting an MDM platform do the work.

If you’re on macOS, give the graphical installer a try and let us know how it goes on Discord.

TODO

Install Determinate Nix on macOS now

Apple Silicon and Intel

We look forward to hearing from you.


Share
Avatar for Graham Christensen
Written by Graham Christensen

Graham is a Nix and Rust developer, with a passion and focus on reliability in the lower levels of the stack. He founded Determinate Systems, Inc to support Nix adoption at your workplace.