A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
Eelco Dolstra 5c97b5a398 InstallableFlake::toDerivedPaths(): Support paths and store paths
This makes 'nix build' work on paths (which will be copied to the
store) and store paths (returned as is). E.g. the following flake
output attributes can be built using 'nix build .#foo':

  foo = ./src;
  foo = self.outPath;
  foo = builtins.fetchTarball { ... };
  foo = (builtins.fetchTree { .. }).outPath;
  foo = builtins.fetchTree { .. } + "/README.md";
  foo = builtins.storePath /nix/store/...;

Note that this is potentially risky, e.g.

  foo = /.;

will cause Nix to try to copy the entire file system to the store.

What doesn't work yet:

  foo = self;
  foo = builtins.fetchTree { .. };

because we don't handle attrsets with an outPath attribute in it yet,
and

  foo = builtins.storePath /nix/store/.../README.md;

since result symlinks have to point to a store path currently (rather
than a file inside a store path).

Fixes #7417.
2022-12-20 15:11:44 +01:00
.github Remove auto assign 2022-12-12 13:01:23 +01:00
config Run autoupdate 2021-06-01 11:42:38 +02:00
contrib
doc/manual Merge pull request #7456 from ncfavier/fix-links 2022-12-13 17:27:13 +01:00
m4
maintainers Remove GPG-signing of releases 2022-12-06 14:00:38 +01:00
misc Merge pull request #6645 from Artturin/limitinfinity 2022-12-09 13:36:13 +01:00
mk Fix incremental static builds 2022-06-22 17:53:58 +02:00
perl Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
scripts Merge pull request #7419 from fricklerhandwerk/installer-contact 2022-12-07 13:27:09 +01:00
src InstallableFlake::toDerivedPaths(): Support paths and store paths 2022-12-20 15:11:44 +01:00
tests InstallableFlake::toDerivedPaths(): Support paths and store paths 2022-12-20 15:11:44 +01:00
.dir-locals.el
.editorconfig
.gitignore Add fish suport to installer 2022-09-13 12:56:16 -04:00
.version .version: Add newline 2022-12-07 13:39:10 +01:00
boehmgc-coroutine-sp-fallback.diff Update boehmgc-coroutine-sp-fallback.diff for darwin 2022-09-01 11:48:50 -05:00
bootstrap.sh
configure.ac Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
COPYING
default.nix Remove url literals 2022-01-24 13:28:21 +01:00
docker.nix Add nobody user/group to Nix docker image 2022-11-29 10:01:46 +00:00
flake.lock curl: patch for netrc regression in Nix 2022-07-14 17:45:02 -05:00
flake.nix Build Nix with the GC disabled in hydra 2022-12-13 10:44:07 +01:00
local.mk
Makefile Merge branch 'master' into lto 2022-05-25 11:55:13 +00:00
Makefile.config.in Embed the sandbox shell into the statically linked 'nix' binary 2022-06-23 04:08:28 +02:00
precompiled-headers.h
README.md Fix link to hacking doc 2022-07-30 09:12:50 -07:00
shell.nix Remove url literals 2022-01-24 13:28:21 +01: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

See our Hacking guide in our manual for instruction on how to build nix from source with nix-build or how to get a development environment.

Additional Resources

License

Nix is released under the LGPL v2.1.