Find a file
Eelco Dolstra ba50c3efa3 Add "uid-range" and "systemd-cgroup" system features
"uid-range" provides 65536 UIDs to a build and runs the build as root
in its user namespace. "systemd-cgroup" allows the build to mount the
systemd cgroup controller (needed for running systemd-nspawn and NixOS
containers).

Also, add a configuration option "auto-allocate-uids" which is needed
to enable these features, and some experimental feature gates.

So to enable support for containers you need the following in
nix.conf:

  experimental-features = auto-allocate-uids systemd-cgroup
  auto-allocate-uids = true
  system-features = uid-range systemd-cgroup
2020-07-06 13:50:33 +02:00
.github Bump cachix/install-nix-action from v8 to v10 2020-06-28 06:02:57 +00:00
config update config/config.{sub,guess} 2018-08-13 20:00:17 +00:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
corepkgs Move some corepkgs into the nix binary 2020-03-11 16:57:48 +01:00
doc/manual docs/installer: add correct curl flags 2020-06-23 23:04:10 +01:00
m4 autoconf: Fix C++17 detection not working on Ubuntu 16.04. 2019-07-03 04:32:25 +02:00
maintainers upload-release.pl: Fix nix-fallback-paths.nix generation 2020-06-15 10:28:59 +02:00
misc Make nix-daemon.plist less fragile on macOS 2019-10-09 12:52:01 +01:00
mk Shorten the path to the test root 2020-07-03 09:20:01 +02:00
nix-rust make check: Run unit tests 2020-05-08 11:49:40 +02:00
perl Revert the enum struct change 2020-06-18 22:11:26 +00:00
scripts docs/installer: add correct curl flags 2020-06-23 23:04:10 +01:00
src Add "uid-range" and "systemd-cgroup" system features 2020-07-06 13:50:33 +02:00
tests Merge branch 'master' into add-trace 2020-07-03 07:57:36 -06:00
.dir-locals.el .dir-locals.el: Set additional lambda indentation to zero 2020-02-20 07:56:35 +01:00
.editorconfig Add .editorconfig 2017-06-05 22:57:28 +01:00
.gitignore Add src/libutil/tests/libutil-tests to .gitignore 2020-06-04 21:05:41 +00:00
.version Bump version 2019-09-04 15:59:33 +02:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac configure: Look for gtest 2020-05-08 12:09:37 +02:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
local.mk Remove global -I flags 2020-03-30 15:30:19 +02:00
Makefile repl indenting 2020-06-24 13:10:41 -06:00
Makefile.config.in configure: Look for gtest 2020-05-08 12:09:37 +02:00
precompiled-headers.h precompiled-headers.h: Don't include our own headers 2020-05-04 22:40:02 +02:00
README.md Tweak README.md 2020-05-01 11:47:26 +02:00
release-common.nix release.nix: Remove vendoredCrates 2020-06-16 14:33:03 +02:00
release.nix release.nix: Remove vendoredCrates 2020-06-16 14:33:03 +02:00
shell.nix Remove rustfmt 2020-06-17 10:02:33 +02:00

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation

On Linux and macOS the easiest way to Install Nix is to run the following shell command (as a user other than root):

$ curl -L https://nixos.org/nix/install | sh

Information on additional installation methods is available on the Nix download page.

Building And Developing

Building Nix

You can build Nix using one of the targets provided by 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

License

Nix is released under the LGPL v2.1.