Install System Requirements

Tarook only has a single primary dependency: Nix. Everything else is fetched or built automatically.

Nix is a declarative package manager which powers NixOS but can also be installed as an additional separate package manager on any other GNU/Linux distribution. This repository contains a flake.nix which references all necessary dependencies locked to specific versions so everybody can produce the same identical environment.

  1. Install Nix on a non NixOS system

    Note

    nix (Nix) >= 2.9.0 is required.

    Follow the Nix documentation on how to install.

  2. Enable Flake support by adding the following line to either ~/.config/nix/nix.conf or /etc/nix/nix.conf.

    experimental-features = nix-command flakes
    
  3. (Optional) Add our binary cache in /etc/nix/nix.conf so you won’t have to build anything from source

    extra-substituters = https://nix-cache.tarook.cloud
    extra-trusted-public-keys = nix-cache.tarook.cloud-2:2X2yPTrpwmakhSgS83FVB2fKkG6IzfOJ1AGIIcvNyM0=
    

    Note

    The binary cache must be configured in /etc/nix/nix.conf. Adding it to ~/.config/nix/nix.conf is only doable if the current user is added as trusted-user in /etc/nix/nix.conf which would have security implications.

  4. Restart the systemd service in order for the changes in nix.conf to take effect.

    $ sudo systemctl daemon-reload
    $ sudo systemctl restart nix-daemon
    
  5. Install direnv and configure its hook for your shell. This is not strictly necessary, but the rest of the guide assumes that direnv is available. You can enter the virtual environments and set all necessary environment variables manually instead, but then you’re on your own.