immediately add the result as a permanent GC root. This is the only
way to prevent a race with the garbage collector. For instance, the
old style
ln -s $(nix-store -r $(nix-instantiate foo.nix)) \
/nix/var/nix/gcroots/result
has two time windows in which the garbage collector can interfere
(by GC'ing the derivation and the output, respectively). On the
other hand,
nix-store --add-root /nix/var/nix/gcroots/result -r \
$(nix-instantiate --add-root /nix/var/nix/gcroots/drv \
foo.nix)
is safe.
* nix-build: use `--add-root' to prevent GC races.
18 lines
497 B
Text
18 lines
497 B
Text
nix-instantiate [OPTIONS...] [FILES...]
|
|
|
|
`nix-instantiate' turns Nix expressions into store derivations.
|
|
|
|
The argument `-' may be specified to read a Nix expression from
|
|
standard input.
|
|
|
|
Options:
|
|
|
|
--version: output version information
|
|
--help: display help
|
|
|
|
--verbose / -v: verbose operation (may be repeated)
|
|
|
|
--eval-only: evaluate and print resulting term; do not instantiate
|
|
--parse-only: parse and print abstract syntax tree
|
|
|
|
--add-root: add garbage collector roots for the result
|