43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
|
# Prerequisites {#sec-flakes-prerequisites}
|
||
|
|
||
|
- Install Nix 2.4 or later, or have it in `nix-shell`.
|
||
|
|
||
|
- Enable experimental features `nix-command` and `flakes`.
|
||
|
|
||
|
- When using NixOS, add the following to your `configuration.nix`
|
||
|
and rebuild your system.
|
||
|
|
||
|
``` nix
|
||
|
nix = {
|
||
|
package = pkgs.nixFlakes;
|
||
|
extraOptions = ''
|
||
|
experimental-features = nix-command flakes
|
||
|
'';
|
||
|
};
|
||
|
```
|
||
|
|
||
|
- If you are not using NixOS, add the following to `nix.conf`
|
||
|
(located at `~/.config/nix/` or `/etc/nix/nix.conf`).
|
||
|
|
||
|
``` bash
|
||
|
experimental-features = nix-command flakes
|
||
|
```
|
||
|
|
||
|
You may need to restart the Nix daemon with, for example,
|
||
|
`sudo systemctl restart nix-daemon.service`.
|
||
|
|
||
|
- Alternatively, you can enable flakes on a per-command basis with
|
||
|
the following additional flags to `nix` and `home-manager`:
|
||
|
|
||
|
``` shell
|
||
|
$ nix --extra-experimental-features "nix-command flakes" <sub-commands>
|
||
|
$ home-manager --extra-experimental-features "nix-command flakes" <sub-commands>
|
||
|
```
|
||
|
|
||
|
- Prepare your Home Manager configuration (`home.nix`).
|
||
|
|
||
|
Unlike the channel-based setup, `home.nix` will be evaluated when
|
||
|
the flake is built, so it must be present before bootstrap of Home
|
||
|
Manager from the flake. See [Configuration Example](#sec-usage-configuration) for
|
||
|
introduction about writing a Home Manager configuration.
|