Getting Nix

Below you will find installation instructions for Nix, the package manager. Nix is currently supported on Linux and Mac. The latest stable release is 2.3.4

The quickest way to install Nix is to run the following in a shell (as a user other than root):
curl -L --proto '=https' --tlsv1.2 https://nixos.org/nix/install | sh

Make sure to follow the instructions output by the script.

The installation script requires that you have sudo access to root.

You may want to verify the integrity of the installation script using GPG:

curl -o install-nix-2.3.4 https://releases.nixos.org/nix/nix-2.3.4/install
curl -o install-nix-2.3.4.asc https://releases.nixos.org/nix/nix-2.3.4/install.asc
gpg2 --recv-keys B541D55301270E0BCF15CA5D8170B4726D7198DE
gpg2 --verify ./install-nix-2.3.4.asc
sh ./install-nix-2.3.4

The signing key has fingerprint B541 D553 0127 0E0B CF15 CA5D 8170 B472 6D71 98DE. It is also available on GitHub.

You can uninstall Nix simply by running rm -rf /nix.

See the manual for more information.

The following artifacts are also available:

Getting NixOS

Below you will find installation instructions for NixOS, the linux distribution. The latest stable release series is 19.09

You can install NixOS on physical hardware by burning one of the CD images onto a blank CD/DVD disk, or by copying it onto a USB stick. For installation instructions, please see the manual.

Please note that NixOS at the moment lacks a nice, user-friendly graphical installer. Therefore this form of installation may not be suitable for novice Linux users.

The graphical installation CD contains the NixOS installer as well as X11, Plasma 5 Desktop and several applications. It’s a live CD, so it allows you to get an impression of NixOS (and the Nix package manager) before installing it.

The minimal installation CD does not contain X11, and is therefore a lot smaller. You have to run the installer from the console. It contains a number of rescue tools.

This is a demo appliance for VirtualBox (in OVA format) that has X11 and Plasma 5 enabled, as well as the VirtualBox guest additions. To use it, download the OVA file, open VirtualBox, run “File → Import Appliance” from the menu, select the OVA file, and click “Import”. You can then start the virtual machine. When the KDE login screen appears, you can log in as user demo, password demo. To obtain a root shell, run sudo -i in the KDE terminal (konsole).

If you are an EC2 user, you can fire up a NixOS instance instantly by using one of the AMIs listed below.

Region Root storage Virtualisation AMI
ap-northeast-1 EBS Hardware ami-0329e7fc2d7f60bd0 Launch
ap-northeast-2 EBS Hardware ami-03d4ae7d0b5fc364f Launch
ap-south-1 EBS Hardware ami-0b599690b35aeef23 Launch
ap-southeast-1 EBS Hardware ami-083614e4d08f2164d Launch
ap-southeast-2 EBS Hardware ami-0048c704185ded6dc Launch
ca-central-1 EBS Hardware ami-0627dd3f7b3627a29 Launch
eu-central-1 EBS Hardware ami-00a7fafd7e237a330 Launch
eu-west-1 EBS Hardware ami-0ebd3156e21e9642f Launch
eu-west-2 EBS Hardware ami-02a2b5480a79084b7 Launch
eu-west-3 EBS Hardware ami-09aa175c7588734f7 Launch
us-east-1 EBS Hardware ami-00a8eeaf232a74f84 Launch
us-east-2 EBS Hardware ami-093efd3a57a1e03a8 Launch
us-west-1 EBS Hardware ami-0913e9a2b677fac30 Launch
us-west-2 EBS Hardware ami-02d9a19f77b47882a Launch

You can create an instance using the AWS Management Console by clicking one of the Launch buttons. You can also create an instance from the command line. For example, to create an instance in region eu-west-1 using the EC2 API tools, just run:

        $ ec2-run-instances  --region eu-west-1 -k my-key-pair

If you are an Azure user, you can manually create a NixOS instance by using one of the bootstrap BLOBs listed below.

You can create an instance from the command line. For example, to create an instance of version 19.09 of NixOS using azure-cli, just run:

# settings
# vm name must be lowercase and letters/numbers only because it's also used as the domain name
export VM_NAME="nixosvm"
export RESOURCE_GROUP="rg-nixosvm"
export LOCATION="eastus"
export STORAGE_ACCOUNT="nixosvm"
export SOURCE_URI=""

# create group
az group create \
    --name "$RESOURCE_GROUP" \
    --location "$LOCATION

# create storage
az storage account create \
    --name "$STORAGE_ACCOUNT" \
    --group "$RESOURCE_GROUP" \
    --location "$LOCATION" \
    --sku Standard_LRS

az storage account keys list \
    --name "$STORAGE_ACCOUNT" \
    --group $RESOURCE_GROUP

# export one of the storage access keys
export STORAGE_ACCOUNT_KEY="..."
echo $STORAGE_ACCOUNT_KEY

az storage container create \
    --account-name "$STORAGE_ACCOUNT"
    --account-key "$STORAGE_ACCOUNT_KEY"
    --name vm-images

# copy the image blob
az storage blob copy start \
    --source-uri "$SOURCE_URI" \
    --destination-blob "nixos-unstable-nixops.vhd" \
    --destination-container "vm-images" \
    --account-name "$STORAGE_ACCOUNT" \
    --account-key "$STORAGE_ACCOUNT_KEY"

# wait for blob copy status to change pending->success
az storage blob show \
    --name "nixos-unstable-nixops.vhd" \
    --container-name "vm-images" \
    --account-name "$STORAGE_ACCOUNT" \
    --account-key "$STORAGE_ACCOUNT_KEY"


# create vm
az vm create \
    --name "$VM_NAME" \
    --resource-group "$RESOURCE_GROUP" \
    --location "$LOCATION" \
    --public-ip-address-dns-name "$VM_NAME" \
    --image "https://$STORAGE_ACCOUNT.blob.core.windows.net/vm-images/nixos-unstable-nixops.vhd" \
    --storage-account "$STORAGE_ACCOUNT" \
    --storage-container-name "$VM_NAME" \
    --use-unmanaged-disk \
    --os-disk-size-gb "32" \
    --os-type linux \
    --admin-username "azureuser" \
    --generate-ssh-keys

# show machine properties and log in
az vm show \
    --name "$VM" \
    --resource-group "$GROUP"

ssh azureuser@"$VM_NAME"."$LOCATION".cloudapp.azure.com

If you are Google Cloud Platform user, you can create a NixOS image using one of the raw disks listed below. You can then create a NixOS instance using the image.

For example:

image=my-nixos-image
source_uri=https://storage.googleapis.com/nixos-cloud-images/nixos-image-18.09.1228.a4c4cbb613c-x86_64-linux.raw.tar.gz
source_uri=$(sed 's%gs:/%https://storage.googleapis.com%' <<< $source_uri)
gcloud compute images create $image --source-uri=$source_uri
gcloud compute instances create instance-1 --image=$image

Unstable releases

If you are a developer who wants to contribute to NixOS, or if you just want the latest and greatest, you can also install the most recent unstable release.