The Determinate Nix Installer

An unofficial Nix installer created by Determinate Systems

Concepts / The Determinate Nix Installer

The Determinate Nix Installer is an unofficial, opinionated installer for Nix created by Determinate Systems. It currently supports both Linux and macOS.

The Determinate Nix Installer, from Determinate Systems, differs from the official Nix installation script in several important ways:

  1. It installs Nix with flake support and the unified CLI feature already enabled rather than requiring users to enable those features.
  2. It stores a receipt for the install process at /nix/receipt.json. This receipt enables the Determinate Nix Installer to seamlessly uninstall Nix, whereas the official Nix installation script provides no offboarding path of this kind.
  3. Much like Terraform, the Determinate Nix Installer enables you to plan your installation using the plan command to see how Nix Installer will change your system. We see this as an improvement over the official Nix installation script, which prompts you to approve changes but doesn't present all changes.
  4. The Determinate Nix Installer is written in Rust rather than a shell scripting language (the official installer is written in Bash). This has two key benefits:
    1. It makes the Determinate Nix Installer more portable across platforms.
    2. It enables the Determinate Nix Installer to parallelize CPU-intensive tasks, which can't be achieved in a language like Bash.
  5. If the installation fails along the way for some reason, the Determinate Nix Installer can use its receipt to revert the changes that it has made, minimizing the likelihood that the Nix installation process leaves your system in an undesirable state.

Using the Determinate Nix Installer

You can run the installer on your system using this command:

curl --proto '=https' --tlsv1.2 -sSf -L | sh -s -- install

For a more complete guide, see Get Nix running on your system here in Zero to Nix.

Was this page helpful?