aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/src/glossary.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual/src/glossary.md')
-rw-r--r--doc/manual/src/glossary.md67
1 files changed, 41 insertions, 26 deletions
diff --git a/doc/manual/src/glossary.md b/doc/manual/src/glossary.md
index d0aff34e2..e142bd415 100644
--- a/doc/manual/src/glossary.md
+++ b/doc/manual/src/glossary.md
@@ -15,7 +15,7 @@
Example: `/nix/store/g946hcz4c8mdvq2g8vxx42z51qb71rvp-git-2.38.1.drv`
- See [`nix show-derivation`](./command-ref/new-cli/nix3-show-derivation.md) (experimental) for displaying the contents of store derivations.
+ See [`nix derivation show`](./command-ref/new-cli/nix3-derivation-show.md) (experimental) for displaying the contents of store derivations.
[store derivation]: #gloss-store-derivation
@@ -31,7 +31,7 @@
This means either running the `builder` executable as specified in the corresponding [derivation] or fetching a pre-built [store object] from a [substituter].
- See [`nix-build`](./command-ref/nix-build.md) and [`nix-store --realise`](./command-ref/nix-store.md#operation---realise).
+ See [`nix-build`](./command-ref/nix-build.md) and [`nix-store --realise`](@docroot@/command-ref/nix-store/realise.md).
See [`nix build`](./command-ref/new-cli/nix3-build.md) (experimental).
@@ -54,7 +54,7 @@
invoked, the Nix store can be referred to
as a "_local_" or a "_remote_" one:
- + A *local store* exists on the filesystem of
+ + A [local store]{#gloss-local-store} exists on the filesystem of
the machine where Nix is invoked. You can use other
local stores by passing the `--store` flag to the
`nix` command. Local stores can be used for building derivations.
@@ -65,17 +65,17 @@
served by the `nix-serve` Perl script.
[store]: #gloss-store
+ [local store]: #gloss-local-store
- [chroot store]{#gloss-chroot-store}\
- A local store whose canonical path is anything other than `/nix/store`.
+ A [local store] whose canonical path is anything other than `/nix/store`.
- [binary cache]{#gloss-binary-cache}\
A *binary cache* is a Nix store which uses a different format: its
metadata and signatures are kept in `.narinfo` files rather than in a
- Nix database. This different format simplifies serving store objects
- over the network, but cannot host builds. Examples of binary caches
- include S3 buckets and the [NixOS binary
- cache](https://cache.nixos.org).
+ [Nix database]. This different format simplifies serving store objects
+ over the network, but cannot host builds. Examples of binary caches
+ include S3 buckets and the [NixOS binary cache](https://cache.nixos.org).
- [store path]{#gloss-store-path}\
The location of a [store object] in the file system, i.e., an
@@ -101,14 +101,11 @@
derivation.
- [output-addressed store object]{#gloss-output-addressed-store-object}\
- A store object whose store path hashes its content. This
- includes derivations, the outputs of
- [content-addressed derivations](#gloss-content-addressed-derivation),
- and the outputs of
- [fixed-output derivations](#gloss-fixed-output-derivation).
+ A [store object] whose [store path] is determined by its contents.
+ This includes derivations, the outputs of [content-addressed derivations](#gloss-content-addressed-derivation), and the outputs of [fixed-output derivations](#gloss-fixed-output-derivation).
- [substitute]{#gloss-substitute}\
- A substitute is a command invocation stored in the Nix database that
+ A substitute is a command invocation stored in the [Nix database] that
describes how to build a store object, bypassing the normal build
mechanism (i.e., derivations). Typically, the substitute builds the
store object by downloading a pre-built version of the store object
@@ -127,6 +124,14 @@
builder can rely on external inputs such as the network or the
system time) but the Nix model assumes it.
+ - [Nix database]{#gloss-nix-database}\
+ An SQlite database to track [reference]s between [store object]s.
+ This is an implementation detail of the [local store].
+
+ Default location: `/nix/var/nix/db`.
+
+ [Nix database]: #gloss-nix-database
+
- [Nix expression]{#gloss-nix-expression}\
A high-level description of software packages and compositions
thereof. Deploying software using Nix entails writing Nix
@@ -135,14 +140,13 @@
then be built.
- [reference]{#gloss-reference}\
- A store path `P` is said to have a reference to a store path `Q` if
- the store object at `P` contains the path `Q` somewhere. The
- *references* of a store path are the set of store paths to which it
- has a reference.
+ A [store object] `O` is said to have a *reference* to a store object `P` if a [store path] to `P` appears in the contents of `O`.
+
+ Store objects can refer to both other store objects and themselves.
+ References from a store object to itself are called *self-references*.
+ References other than a self-reference must not form a cycle.
- A derivation can reference other derivations and sources (but not
- output paths), whereas an output path only references other output
- paths.
+ [reference]: #gloss-reference
- [reachable]{#gloss-reachable}\
A store path `Q` is reachable from another store path `P` if `Q`
@@ -156,11 +160,11 @@
build-time dependencies, while the closure of its output path is
equivalent to its runtime dependencies. For correct deployment it
is necessary to deploy whole closures, since otherwise at runtime
- files could be missing. The command `nix-store -qR` prints out
+ files could be missing. The command `nix-store --query --requisites ` prints out
closures of store paths.
- As an example, if the store object at path `P` contains a reference
- to path `Q`, then `Q` is in the closure of `P`. Further, if `Q`
+ As an example, if the [store object] at path `P` contains a [reference]
+ to a store object at path `Q`, then `Q` is in the closure of `P`. Further, if `Q`
references `R` then `R` is also in the closure of `P`.
[closure]: #gloss-closure
@@ -176,9 +180,9 @@
- [validity]{#gloss-validity}\
A store path is valid if all [store object]s in its [closure] can be read from the [store].
- For a local store, this means:
+ For a [local store], this means:
- The store path leads to an existing [store object] in that [store].
- - The store path is listed in the Nix database as being valid.
+ - The store path is listed in the [Nix database] as being valid.
- All paths in the store path's [closure] are valid.
[validity]: #gloss-validity
@@ -193,6 +197,11 @@
A symlink to the current *user environment* of a user, e.g.,
`/nix/var/nix/profiles/default`.
+ - [installable]{#gloss-installable}\
+ Something that can be realised in the Nix store.
+
+ See [installables](./command-ref/new-cli/nix.md#installables) for [`nix` commands](./command-ref/new-cli/nix.md) (experimental) for details.
+
- [NAR]{#gloss-nar}\
A *N*ix *AR*chive. This is a serialisation of a path in the Nix
store. It can contain regular files, directories and symbolic
@@ -213,3 +222,9 @@
[string]: ./language/values.md#type-string
[path]: ./language/values.md#type-path
[attribute name]: ./language/values.md#attribute-set
+
+ - [experimental feature]{#gloss-experimental-feature}\
+ Not yet stabilized functionality guarded by named experimental feature flags.
+ These flags are enabled or disabled with the [`experimental-features`](./command-ref/conf-file.html#conf-experimental-features) setting.
+
+ See the contribution guide on the [purpose and lifecycle of experimental feaures](@docroot@/contributing/experimental-features.md).