Skip to content

Commit

Permalink
update docs on nix-store --realise
Browse files Browse the repository at this point in the history
also add links to existing terms
  • Loading branch information
fricklerhandwerk committed Dec 21, 2022
1 parent 5c77e4e commit a75e086
Showing 1 changed file with 31 additions and 28 deletions.
59 changes: 31 additions & 28 deletions doc/manual/src/command-ref/nix-store.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,28 +62,27 @@ have an effect.

## Description

The operation `--realise` essentially “builds” the specified store
paths. Realisation is a somewhat overloaded term:

- If the store path is a *derivation*, realisation ensures that the
output paths of the derivation are [valid](../glossary.md) (i.e.,
the output path and its closure exist in the file system). This
can be done in several ways. First, it is possible that the
outputs are already valid, in which case we are done
immediately. Otherwise, there may be [substitutes](../glossary.md)
that produce the outputs (e.g., by downloading them). Finally, the
outputs can be produced by running the build task described
by the derivation.

- If the store path is not a derivation, realisation ensures that the
specified path is valid (i.e., it and its closure exist in the file
system). If the path is already valid, we are done immediately.
Otherwise, the path and any missing paths in its closure may be
produced through substitutes. If there are no (successful)
substitutes, realisation fails.

The output path of each derivation is printed on standard output. (For
non-derivations argument, the argument itself is printed.)
Ensure that the given [store path]s are [valid].
A store path is valid if all [store object]s in its [closure] can be read from the store.

If a given path is a [store derivation], the command operates on the [output path]s of that derivation.

If the paths are already valid, we are done immediately.
Otherwise, the associated store objects in the paths' closure may be fetched from [substituter]s.

Finally, if a store derivation was given as argument, the required store objects can be produced by running the associated build task.
If no store derivation is given and no substitutes are available, realisation fails.

[store path]: ../glossary.md#gloss-store-path
[valid]: ../glossary.md#gloss-validity
[store object]: ../glossary.md#gloss-store-object
[closure]: ../glossary.md#gloss-closure
[store derivation]: ../glossary.md#gloss-store-derivation
[output path]: ../glossary.md#gloss-output-path
[substituter]: ../glossary.md#gloss-substituter

The output path of each derivation is printed on standard output. For
non-derivations argument, the argument itself is printed.

The following flags are available:

Expand Down Expand Up @@ -289,8 +288,8 @@ error: cannot delete path `/nix/store/zq0h41l75vlb4z45kzgjjmsjxvcv1qk7-mesa-6.4'

## Description

The operation `--query` displays various bits of information about the
store paths . The queries are described below. At most one query can be
The operation `--query` displays information about [store path]s.
The queries are described below. At most one query can be
specified. The default query is `--outputs`.

The paths *paths* may also be symlinks from outside of the Nix store, to
Expand All @@ -310,12 +309,12 @@ symlink.
## Queries

- `--outputs`\
Prints out the [output paths](../glossary.md) of the store
Prints out the [output path]s of the store
derivations *paths*. These are the paths that will be produced when
the derivation is built.

- `--requisites`; `-R`\
Prints out the [closure](../glossary.md) of the store path *paths*.
Prints out the [closure] of the given *paths*.

This query has one option:

Expand All @@ -332,10 +331,12 @@ symlink.
derivation and specifying the option `--include-outputs`.

- `--references`\
Prints the set of [references](../glossary.md) of the store paths
Prints the set of [references]s of the store paths
*paths*, that is, their immediate dependencies. (For *all*
dependencies, use `--requisites`.)

[reference]: ../glossary.md#gloss-reference

- `--referrers`\
Prints the set of *referrers* of the store paths *paths*, that is,
the store paths currently existing in the Nix store that refer to
Expand All @@ -350,11 +351,13 @@ symlink.
in the Nix store that are dependent on *paths*.

- `--deriver`; `-d`\
Prints the [deriver](../glossary.md) of the store paths *paths*. If
Prints the [deriver] of the store paths *paths*. If
the path has no deriver (e.g., if it is a source file), or if the
deriver is not known (e.g., in the case of a binary-only
deployment), the string `unknown-deriver` is printed.

[deriver]: ../glossary.md#gloss-deriver

- `--graph`\
Prints the references graph of the store paths *paths* in the format
of the `dot` tool of AT\&T's [Graphviz
Expand Down

0 comments on commit a75e086

Please sign in to comment.