README: improve development docs
This commit is contained in:
parent
a79b6ddaa5
commit
f0100f5590
2 changed files with 42 additions and 28 deletions
25
README.md
25
README.md
|
@ -12,7 +12,7 @@ for more details.
|
||||||
On Linux and macOS the easiest way to Install Nix is to run the following shell command
|
On Linux and macOS the easiest way to Install Nix is to run the following shell command
|
||||||
(as a user other than root):
|
(as a user other than root):
|
||||||
|
|
||||||
```
|
```console
|
||||||
$ curl -L https://nixos.org/nix/install | sh
|
$ curl -L https://nixos.org/nix/install | sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -20,27 +20,8 @@ Information on additional installation methods is available on the [Nix download
|
||||||
|
|
||||||
## Building And Developing
|
## Building And Developing
|
||||||
|
|
||||||
### Building Nix
|
See our [Hacking guide](hydra.nixos.org/job/nix/master/build.x86_64-linux/latest/download-by-type/doc/manual#chap-hacking) in our manual for instruction on how to
|
||||||
|
build nix from source with nix-build or how to get a development environment.
|
||||||
You can build Nix using one of the targets provided by [release.nix](./release.nix):
|
|
||||||
|
|
||||||
```
|
|
||||||
$ nix-build ./release.nix -A build.aarch64-linux
|
|
||||||
$ nix-build ./release.nix -A build.x86_64-darwin
|
|
||||||
$ nix-build ./release.nix -A build.i686-linux
|
|
||||||
$ nix-build ./release.nix -A build.x86_64-linux
|
|
||||||
```
|
|
||||||
|
|
||||||
### Development Environment
|
|
||||||
|
|
||||||
You can use the provided `shell.nix` to get a working development environment:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ nix-shell
|
|
||||||
$ ./bootstrap.sh
|
|
||||||
$ ./configure
|
|
||||||
$ make
|
|
||||||
```
|
|
||||||
|
|
||||||
## Additional Resources
|
## Additional Resources
|
||||||
|
|
||||||
|
|
|
@ -7,15 +7,34 @@
|
||||||
<para>This section provides some notes on how to hack on Nix. To get
|
<para>This section provides some notes on how to hack on Nix. To get
|
||||||
the latest version of Nix from GitHub:
|
the latest version of Nix from GitHub:
|
||||||
<screen>
|
<screen>
|
||||||
$ git clone git://github.com/NixOS/nix.git
|
$ git clone https://github.com/NixOS/nix.git
|
||||||
$ cd nix
|
$ cd nix
|
||||||
</screen>
|
</screen>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>To build it and its dependencies:
|
<para>To build Nix for the current operating system/architecture use</para>
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
$ nix-build release.nix -A build.x86_64-linux
|
$ nix-build
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
|
or if you have a flakes-enabled nix:
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
$ nix build
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
This will build <literal>defaultPackage</literal> attribute defined in the <literal>flake.nix</literal> file.
|
||||||
|
|
||||||
|
To build for other platforms add one of the following suffixes to it: aarch64-linux,
|
||||||
|
i686-linux, x86_64-darwin, x86_64-linux.
|
||||||
|
|
||||||
|
i.e.
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
nix-build -A defaultPackage.x86_64-linux
|
||||||
|
</screen>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>To build all dependencies and start a shell in which all
|
<para>To build all dependencies and start a shell in which all
|
||||||
|
@ -27,13 +46,27 @@ $ nix-shell
|
||||||
To build Nix itself in this shell:
|
To build Nix itself in this shell:
|
||||||
<screen>
|
<screen>
|
||||||
[nix-shell]$ ./bootstrap.sh
|
[nix-shell]$ ./bootstrap.sh
|
||||||
[nix-shell]$ configurePhase
|
[nix-shell]$ ./configure $configureFlags
|
||||||
[nix-shell]$ make
|
[nix-shell]$ make -j $NIX_BUILD_CORES
|
||||||
</screen>
|
</screen>
|
||||||
To install it in <literal>$(pwd)/inst</literal> and test it:
|
To install it in <literal>$(pwd)/inst</literal> and test it:
|
||||||
<screen>
|
<screen>
|
||||||
[nix-shell]$ make install
|
[nix-shell]$ make install
|
||||||
[nix-shell]$ make installcheck
|
[nix-shell]$ make installcheck
|
||||||
|
[nix-shell]$ ./inst/bin/nix --version
|
||||||
|
nix (Nix) 2.4
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
If you have a flakes-enabled nix you can replace:
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
$ nix-shell
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
by:
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
$ nix develop
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
Loading…
Reference in a new issue