GuidesMigrating from upstream Nix

Migrating from upstream Nix

If you’re already running upstream Nix, your migration path to Determinate Nix depends on your current system.

If you’re not sure if you’re currently using Determinate Nix, run this command…

nix --version

…and if you see a version like nix 2.28.3 then you are not running Determinate Nix. If you see a version number like nix (Determinate Nix 3.4.2) 2.28.3, then you are running Determinate Nix and you can forgo this guide, although you may want to upgrade.

macOS

If you’re currently using upstream Nix on macOS, you can switch to Determinate Nix using the macOS package:

NixOS

If you’d like to use Determinate Nix on NixOS, see our dedicated guide.

Linux (not NixOS)

If you’re currently using upstream Nix on Linux, including Windows Subsystem for Linux (WSL), most users can install Determinate Nix in two steps:

Relocate your existing receipt

If you previously installed Nix using Determinate Nix Installer, move /nix/receipt.json into another location:

mv /nix/receipt.json /nix/receipt-old.json

If you don’t have an existing receipt, continue to the next step.

Install Determinate Nix with Determinate Nix Installer

Run Determinate Nix Installer
curl -fsSL https://install.determinate.systems/nix | \
  sh -s -- install --determinate

If this does not work correctly, try uninstalling and reinstalling Nix.

Need help? Join us on Discord or contact us by email.

Uninstall Nix (if needed)

If you previously installed Nix using Determinate Nix Installer, you can uninstall Nix using the built-in uninstaller:

/nix/nix-installer uninstall

If you’re not sure if you installed Nix using Determinate Nix Installer, check the contents of your /nix directory…

ls /nix

…and if you see a nix-installer executable and a receipt.json file, that means that you did, and you can use the /nix/nix-installer uninstall command shown above.

If you did not install Nix using Determinate Nix Installer, you can uninstall Nix using these instructions.