For people working on Nix with `nix develop`, it's better to just use `autoreconfPhase` and `configurePhase`, which is standard Nixpkgs / nix shell make from Nixpkgs practice --- it is good to emphasize the degree to which Nix is *just* a regular C++ project which can be worked on in the regular way. (For people running `nix-shell`, the story is similar, except `configurePhase` would use non-writable store paths, which matters for hte times we use output paths before `make install`, so I kept the existing `./configure ...` instruction.) For people building Nix without Nix (e.g. packaging it for another distro) they also don't need `bootstrap.sh`, and can just run `autoreconf -vfi` directly. (More likely, they have their own idioms to do this just as we have `autoreconfPhase`.)
993 B
Building Nix from Source
After cloning Nix's Git repository, issue the following commands:
$ autoreconf -vfi
$ ./configure options...
$ make
$ make install
Nix requires GNU Make so you may need to invoke gmake
instead.
The installation path can be specified by passing the --prefix=prefix
to configure
. The default installation directory is /usr/local
. You
can change this to any location you like. You must have write permission
to the prefix path.
Nix keeps its store (the place where packages are stored) in
/nix/store
by default. This can be changed using
--with-store-dir=path
.
Warning
It is best not to change the Nix store from its default, since doing so makes it impossible to use pre-built binaries from the standard Nixpkgs channels — that is, all packages will need to be built from source.
Nix keeps state (such as its database and log files) in /nix/var
by
default. This can be changed using --localstatedir=path
.