blob: 564667f9306bd72ddce2531551c8b283b8970ec4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# Terminology
From the perspective of the location where Nix is
invoked<sup><b>1</b></sup>, the Nix store can be referred to
as a "_local_" or a "_remote_" one:
<sup>\[1]: Where "invoking Nix" means an executing a Nix core
action/operation on a Nix store. For example, using any CLI
commands from the `NixOS/nix` implementation.</sup>
+ A *local store* exists on the local filesystem of
the machine where Nix is invoked. You can use other
local stores by passing the `--store` flag to the
`nix` command.
+ A *remote store* exists anywhere other than the
local filesystem. One example is the `/nix/store`
directory on another machine, accessed via `ssh` or
served by the `nix-serve` Perl script.
A *binary cache* is a remote store which is not the local store of
any machine. Examples of binary caches include S3 buckets and the
[NixOS binary cache](https://cache.nixos.org). Binary caches use a
disk layout that is different from local stores; in particular, they
keep metadata and signatures in `.narinfo` files rather than in
`/nix/var/nix/db`.
A *substituter* is a store other than `/nix/store` from which Nix will
copy a store path instead of building it. Nix will not copy a store
path from a remote store unless one of the following is true:
- the store object is signed by one of the `trusted-public-keys`
- the substituter is in the `trusted-substituters` list
- the `no-require-sigs` option has been set to disable signature checking
- the store object is a derivation
- the store object is the realisation of a fixed-output derivation
|