diff options
author | Jasper Ras <jras@hostnet.nl> | 2024-11-23 17:08:31 +0100 |
---|---|---|
committer | Jasper Ras <jras@hostnet.nl> | 2024-11-23 17:08:31 +0100 |
commit | c5e7a50f1dbf3b541ae5547c50d2ec5707a45ca9 (patch) | |
tree | d60c74cacfaf13f123a0946768133619d11494b0 /0 inbox/Nix Flakes.md | |
parent | 496c0c2a44ed21bbfb49f4c6e59c1a749c8b7aea (diff) |
move stuff from buffer to inbox
Diffstat (limited to '0 inbox/Nix Flakes.md')
-rw-r--r-- | 0 inbox/Nix Flakes.md | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/0 inbox/Nix Flakes.md b/0 inbox/Nix Flakes.md new file mode 100644 index 0000000..cb7f69b --- /dev/null +++ b/0 inbox/Nix Flakes.md @@ -0,0 +1,21 @@ +#nix + +Nix flakes are source trees containing a file `flake.nix` at their root. The file `flake.nix` provides a standardized way to provide [[Zettelkast/Index/Nix]] artifacts. It's like a package manager for [[Zettelkast/Index/Nix]]. A flake can be dependent on other Flakes and it's possible to pin dependencies to exact revisions by using a `flake.lock` file. + +Nix flake evaluation is hermetic, meaning that it produces the same result wherever it's built.k + +The feature can be enabled in `~/.config/nix/nix.conf`: + +``` +experimental-features = nix-command flakes +``` + +To initialize in a repo: `nix flake init`. + +In flakes dependencies have to be specified explicitly and MUST be locked to specific versions therefore it's no longer allowed to use the nixpkgs found in `NIX_PATH` by referencing it like `<nixpkgs>`. + +Output of a Flake is an arbitrary [[Zettelkast/Index/Nix]] value such as a package, [[NixOS]] module or library function. +Commands `nix build` and `nix shell` will build the output `packages.<system>.default` unless we specify another output, for example: `nix shell .#checks.aarch64-linux.build`. + +--- +[Flakes Wiki](https://nixos.wiki/wiki/Flakes)
\ No newline at end of file |