Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.

Latest commit

 

History

History
70 lines (55 loc) · 2.53 KB

start-here.md

File metadata and controls

70 lines (55 loc) · 2.53 KB

Let's go ahead and install Nix. To do that, we'll use the nix-installer tool by Determinate Systems. This works on many platforms, but most importantly it works on aarch64 Linux and x86_64 Linux. Use the following command in your shell, it should work on any Linux distro of your choice:

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

After you do this, you must log in and log back out of your desktop environment to get a new login session. This is so that your shell can have the Nix tools installed on $PATH and so that your user shell can see some extra settings.

You should now be able to do something like the following; try running these same commands on your machine:

$ nix --version
nix (Nix) 2.16.1
$ nix run nixpkgs#nix-info -- -m
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.90.1-microsoft-standard-WSL2, Ubuntu, 22.04.2 LTS (Jammy Jellyfish), nobuild`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.16.1`
 - channels(root): `"nixpkgs"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`

If the above worked, you're now cooking with gas!

NOTE: While there is an upstream tool to install Nix, written in Bash, we use the Determinate Systems installer — which will hopefully replace the original — because it's faster, and takes care of several extra edge cases that the original one couldn't handle, and makes several changes to the default installed configuration to make things more user friendly. Determinate Systems is staffed by many long-time Nix contributors and the creator of Nix, and is trustworthy.

Do some fun stuff

One of the best things about Nix that requires very little knowledge of it is that it lets you install the latest and greatest versions of many tools on any Linux distribution. We'll explain more about that later on. But just as a few examples:

  • Q: I want the latest version of Deno. Can we get that?
  • A: nix profile install nixpkgs#deno, and you're done!
  • Q: What about HTTPie? A nice Python application?
  • A: Same idea: nix profile install nixpkgs#httpie
  • Q: What about my favorite Rust applications, like ripgrep and bat?
  • A.1: nix profile install nixpkgs#ripgrep
  • A.2: nix profile install nixpkgs#bat
  • A.3: And yes, you also have exa, fd, hyperfine, and more!