Skip to content

Nix

Getting started

References: * How I Start: Nix * Lorri * Direnv * Niv * NixOS - Learn

Bootstrapping a Nix project

Initialize niv

mkdir -p <project_dir>
cd <project_dir>
niv init
# ...
tree
#.
#└── nix
#    ├── sources.json
#    └── sources.nix
#
# 1 directory, 2 files

Initialize lorri, make sure lorri daemon already running

lorri init
# direnv: error <project_root>/<project_dir>/.envrc is blocked. Run `direnv allow` to approve its content

Review .envrc file, then approve

direnv allow

Customize shell.nix to use local source from niv

# shell.nix
let
  sources = import ./nix/sources.nix;
  pkgs = import sources.nixpkgs {};
in
pkgs.mkShell {
  buildInputs = [
    pkgs.hello
  ];
}

TODO