aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/src/package-management/terminology.md
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