mirror of
https://github.com/NixOS/nix.git
synced 2025-11-09 12:06:01 +01:00
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`.)
31 lines
993 B
Markdown
31 lines
993 B
Markdown
# Building Nix from Source
|
|
|
|
After cloning Nix's Git repository, issue the following commands:
|
|
|
|
```console
|
|
$ 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`.
|