Nix Installation Guide: Difference between revisions

Mightyiam (talk | contribs)
Link to Nixcademy tutorial about installing Nix on macOS
Removed outdated and incorrect information, and updated it accordingly
 
Line 3: Line 3:
Please take a look at https://nixos.org/download.html first for basic installation instructions and read the relevant section in the Nix manual if you want to know more about how the install process works: https://nixos.org/manual/nix/stable/#ch-installing-binary.
Please take a look at https://nixos.org/download.html first for basic installation instructions and read the relevant section in the Nix manual if you want to know more about how the install process works: https://nixos.org/manual/nix/stable/#ch-installing-binary.


== Single-user install ==
== Installation ==
Nix package manager can be installed as either:


=== Stable Nix ===
* Multi User Installation (recommended)
* Single User Installation


To install stable Nix from any Linux distribution, use the following two commands. (Note: This assumes you have the permission to use <code>sudo</code>, and you are logged in as the user you want to install Nix for.)
=== Multi User Installation ===
<syntaxhighlight lang="console">
$ bash <(curl -L https://nixos.org/nix/install) --daemon
</syntaxhighlight>


<syntaxHighlight lang="console">
=== Single User Installation ===
$ sudo install -d -m755 -o $(id -u) -g $(id -g) /nix
<syntaxhighlight lang="console">
$ curl -L https://nixos.org/nix/install | sh
$ bash <(curl -L https://nixos.org/nix/install) --no-daemon
</syntaxHighlight>
</syntaxhighlight>


Then don't forget to reboot or run the command provided at the end of the installation script to make nix available in your system:
=== Stable Nix ===
<syntaxHighlight lang="console">
$ source $HOME/.nix-profile/etc/profile.d/nix.sh
</syntaxHighlight>


You may want to put this file directly in your ~/.bashrc or similar, so Nix would be available in any newly created shell.
By default, the rolling Nix package manager will be installed using one of the above commands and thus the <code>nixpkgs-unstable</code> [[Channel Branches|channel]] will be used.


When using another shell like [https://fishshell.com Fish], you should ignore the previous procedure and use the [https://github.com/jorgebucaran/fisher Fisher] plugin [https://github.com/lilyball/nix-env.fish Nix-env].
Follow the below to switch to the stable channel:<syntaxhighlight lang="console">
 
$ sudo su
After that being done, you can use all Nix commands as a normal user without any special permissions (for example by using <code>sudo</code>).
$ nix-channel --remove nixpkgs
$ nix-channel --add https://nixos.org/channel/nixos-25.11 nixpkgs
$ nix-channel --update
</syntaxhighlight>Then run the following command to verify that you are using the stable channel:<syntaxhighlight lang="console">
$ nix-shell -p nix-info --run "nix-info -m"
</syntaxhighlight>


==== Troubleshooting ====  
==== Troubleshooting ====  
Line 37: Line 44:
enabled by default on Linux which requires user namespaces.
enabled by default on Linux which requires user namespaces.
If possible enable them; the procedure depends on the distribution. In last resort, you can disable the sandbox: create the file <code>~/.config/nix/nix.conf</code> and include the line <code>sandbox = false</code>.
If possible enable them; the procedure depends on the distribution. In last resort, you can disable the sandbox: create the file <code>~/.config/nix/nix.conf</code> and include the line <code>sandbox = false</code>.
=== Unstable Nix ===
To install unstable Nix, you can use the [https://github.com/numtide/nix-unstable-installer unofficial installer by @numtide]. Instructions are available in the README of the repository.


== Nix store on an unusual filesystem ==
== Nix store on an unusual filesystem ==
Line 249: Line 252:
Restart the <code>nix-daemon.service</code>
Restart the <code>nix-daemon.service</code>
Used source: https://blog.koch.ro/posts/2024-01-16-using-nix-package-manager-in-debian.html
Used source: https://blog.koch.ro/posts/2024-01-16-using-nix-package-manager-in-debian.html
== Windows Subsystem for Linux (WSL) ==
== Windows Subsystem for Linux (WSL) ==