1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-30 03:23:16 +02:00

Fix internal links

This commit is contained in:
Eelco Dolstra 2020-07-24 15:46:16 +02:00
parent da3d776cb9
commit 05a282295f
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
21 changed files with 245 additions and 262 deletions

View file

@ -141,10 +141,10 @@ The following settings are currently available:
the builder should use all available CPU cores in the system.
- `diff-hook`
Absolute path to an executable capable of diffing build results. The
hook executes if [varlistentry\_title](#conf-run-diff-hook) is true,
and the output of a build is known to not be the same. This program
is not executed to determine if two results are the same.
Absolute path to an executable capable of diffing build
results. The hook is executed if `run-diff-hook` is true, and the
output of a build is known to not be the same. This program is not
executed to determine if two results are the same.
The diff hook is executed by the same user and group who ran the
build. However, the diff hook does not have write access to the
@ -169,7 +169,7 @@ The following settings are currently available:
configuration file, and cannot be passed at the command line.
- `enforce-determinism`
See [varlistentry\_title](#conf-repeat).
See `repeat`.
- `extra-sandbox-paths`
A list of additional paths appended to `sandbox-paths`. Useful if
@ -343,7 +343,7 @@ The following settings are currently available:
password my-password
For the exact syntax, see [the `curl`
documentation.](https://ec.haxx.se/usingcurl-netrc.html)
documentation](https://ec.haxx.se/usingcurl-netrc.html).
> **Note**
>
@ -434,9 +434,9 @@ The following settings are currently available:
deterministic. The default value is 0. If the value is non-zero,
every build is repeated the specified number of times. If the
contents of any of the runs differs from the previous ones and
[varlistentry\_title](#conf-enforce-determinism) is true, the build
is rejected and the resulting store paths are not registered as
“valid” in Nixs database.
`enforce-determinism` is true, the build is rejected and the
resulting store paths are not registered as “valid” in Nixs
database.
- `require-sigs`
If set to `true` (the default), any non-content-addressed path added
@ -461,20 +461,21 @@ The following settings are currently available:
- `sandbox`
If set to `true`, builds will be performed in a *sandboxed
environment*, i.e., theyre isolated from the normal file system
hierarchy and will only see their dependencies in the Nix store, the
temporary build directory, private versions of `/proc`, `/dev`,
`/dev/shm` and `/dev/pts` (on Linux), and the paths configured with
the [`sandbox-paths` option](#conf-sandbox-paths). This is useful to
hierarchy and will only see their dependencies in the Nix store,
the temporary build directory, private versions of `/proc`,
`/dev`, `/dev/shm` and `/dev/pts` (on Linux), and the paths
configured with the `sandbox-paths` option. This is useful to
prevent undeclared dependencies on files in directories such as
`/usr/bin`. In addition, on Linux, builds run in private PID, mount,
network, IPC and UTS namespaces to isolate them from other processes
in the system (except that fixed-output derivations do not run in
private network namespace to ensure they can access the network).
`/usr/bin`. In addition, on Linux, builds run in private PID,
mount, network, IPC and UTS namespaces to isolate them from other
processes in the system (except that fixed-output derivations do
not run in private network namespace to ensure they can access the
network).
Currently, sandboxing only work on Linux and macOS. The use of a
sandbox requires that Nix is run as root (so you should use the
[“build users” feature](#conf-build-users-group) to perform the
actual builds under different users than root).
“build users” feature to perform the actual builds under different
users than root).
If this option is set to `relaxed`, then fixed-output derivations
and derivations that have the `__noChroot` attribute set to `true`
@ -631,81 +632,61 @@ The following settings are currently available:
## Deprecated Settings
- `binary-caches`
*Deprecated:* `binary-caches` is now an alias to
[varlistentry\_title](#conf-substituters).
*Deprecated:* `binary-caches` is now an alias to `substituters`.
- `binary-cache-public-keys`
*Deprecated:* `binary-cache-public-keys` is now an alias to
[varlistentry\_title](#conf-trusted-public-keys).
*Deprecated:* `binary-cache-public-keys` is now an alias `trusted-public-keys`.
- `build-compress-log`
*Deprecated:* `build-compress-log` is now an alias to
[varlistentry\_title](#conf-compress-build-log).
*Deprecated:* `build-compress-log` is now an alias to `compress-build-log`.
- `build-cores`
*Deprecated:* `build-cores` is now an alias to
[varlistentry\_title](#conf-cores).
*Deprecated:* `build-cores` is now an alias to `cores`.
- `build-extra-chroot-dirs`
*Deprecated:* `build-extra-chroot-dirs` is now an alias to
[varlistentry\_title](#conf-extra-sandbox-paths).
*Deprecated:* `build-extra-chroot-dirs` is now an alias to `extra-sandbox-paths`.
- `build-extra-sandbox-paths`
*Deprecated:* `build-extra-sandbox-paths` is now an alias to
[varlistentry\_title](#conf-extra-sandbox-paths).
*Deprecated:* `build-extra-sandbox-paths` is now an alias to `extra-sandbox-paths`.
- `build-fallback`
*Deprecated:* `build-fallback` is now an alias to
[varlistentry\_title](#conf-fallback).
*Deprecated:* `build-fallback` is now an alias to `fallback`.
- `build-max-jobs`
*Deprecated:* `build-max-jobs` is now an alias to
[varlistentry\_title](#conf-max-jobs).
*Deprecated:* `build-max-jobs` is now an alias to `max-jobs`.
- `build-max-log-size`
*Deprecated:* `build-max-log-size` is now an alias to
[varlistentry\_title](#conf-max-build-log-size).
*Deprecated:* `build-max-log-size` is now an alias to `max-build-log-size`.
- `build-max-silent-time`
*Deprecated:* `build-max-silent-time` is now an alias to
[varlistentry\_title](#conf-max-silent-time).
*Deprecated:* `build-max-silent-time` is now an alias to `max-silent-time`.
- `build-repeat`
*Deprecated:* `build-repeat` is now an alias to
[varlistentry\_title](#conf-repeat).
*Deprecated:* `build-repeat` is now an alias to `repeat`.
- `build-timeout`
*Deprecated:* `build-timeout` is now an alias to
[varlistentry\_title](#conf-timeout).
*Deprecated:* `build-timeout` is now an alias to `timeout`.
- `build-use-chroot`
*Deprecated:* `build-use-chroot` is now an alias to
[varlistentry\_title](#conf-sandbox).
*Deprecated:* `build-use-chroot` is now an alias to `sandbox`.
- `build-use-sandbox`
*Deprecated:* `build-use-sandbox` is now an alias to
[varlistentry\_title](#conf-sandbox).
*Deprecated:* `build-use-sandbox` is now an alias to `sandbox`.
- `build-use-substitutes`
*Deprecated:* `build-use-substitutes` is now an alias to
[varlistentry\_title](#conf-substitute).
*Deprecated:* `build-use-substitutes` is now an alias to `substitute`.
- `gc-keep-derivations`
*Deprecated:* `gc-keep-derivations` is now an alias to
[varlistentry\_title](#conf-keep-derivations).
*Deprecated:* `gc-keep-derivations` is now an alias to `keep-derivations`.
- `gc-keep-outputs`
*Deprecated:* `gc-keep-outputs` is now an alias to
[varlistentry\_title](#conf-keep-outputs).
*Deprecated:* `gc-keep-outputs` is now an alias to `keep-outputs`.
- `env-keep-derivations`
*Deprecated:* `env-keep-derivations` is now an alias to
[varlistentry\_title](#conf-keep-env-derivations).
*Deprecated:* `env-keep-derivations` is now an alias to `keep-env-derivations`.
- `extra-binary-caches`
*Deprecated:* `extra-binary-caches` is now an alias to
[varlistentry\_title](#conf-extra-substituters).
*Deprecated:* `extra-binary-caches` is now an alias to `extra-substituters`.
- `trusted-binary-caches`
*Deprecated:* `trusted-binary-caches` is now an alias to
[varlistentry\_title](#conf-trusted-substituters).
*Deprecated:* `trusted-binary-caches` is now an alias to `trusted-substituters`.

View file

@ -92,9 +92,10 @@ Most Nix commands interpret the following environment variables:
- `NIX_REMOTE`
This variable should be set to `daemon` if you want to use the Nix
daemon to execute Nix operations. This is necessary in [multi-user
Nix installations](#ssec-multi-user). If the Nix daemon's Unix
socket is at some non-standard path, this variable should be set to
`unix://path/to/socket`. Otherwise, it should be left unset.
Nix installations](../installation/multi-user.md). If the Nix
daemon's Unix socket is at some non-standard path, this variable
should be set to `unix://path/to/socket`. Otherwise, it should be
left unset.
- `NIX_SHOW_STATS`
If set to `1`, Nix will print some evaluation statistics, such as

View file

@ -32,9 +32,10 @@ to a temporary location. The tarball must include a single top-level
directory containing at least a file named `default.nix`.
`nix-build` is essentially a wrapper around
[`nix-instantiate`](#sec-nix-instantiate) (to translate a high-level Nix
[`nix-instantiate`](nix-instantiate.md) (to translate a high-level Nix
expression to a low-level store derivation) and [`nix-store
--realise`](#rsec-nix-store-realise) (to build the store derivation).
--realise`](nix-store.md#operation---realise) (to build the store
derivation).
> **Warning**
>

View file

@ -11,16 +11,16 @@ Title: nix-collect-garbage
# Description
The command `nix-collect-garbage` is mostly an alias of [`nix-store
--gc`](#rsec-nix-store-gc), that is, it deletes all unreachable paths in
the Nix store to clean up your system. However, it provides two
additional options: `-d` (`--delete-old`), which deletes all old
generations of all profiles in `/nix/var/nix/profiles` by invoking
`nix-env --delete-generations old` on all profiles (of course, this
makes rollbacks to previous configurations impossible); and
`--delete-older-than` *period*, where period is a value such as `30d`,
which deletes all generations older than the specified number of days in
all profiles in `/nix/var/nix/profiles` (except for the generations that
were active at that point in time).
--gc`](nix-store.md#operation---gc), that is, it deletes all
unreachable paths in the Nix store to clean up your system. However,
it provides two additional options: `-d` (`--delete-old`), which
deletes all old generations of all profiles in `/nix/var/nix/profiles`
by invoking `nix-env --delete-generations old` on all profiles (of
course, this makes rollbacks to previous configurations impossible);
and `--delete-older-than` *period*, where period is a value such as
`30d`, which deletes all generations older than the specified number
of days in all profiles in `/nix/var/nix/profiles` (except for the
generations that were active at that point in time).
# Example

View file

@ -92,7 +92,7 @@ have an effect.
done if this flag had not been specified, without actually doing it.
`--dry-run` also prints out which paths will be
[substituted](#gloss-substitute) (i.e., downloaded) and which paths
[substituted](../glossary.md) (i.e., downloaded) and which paths
will be built from source (because no substitute is available).
- `--system-filter` *system*
@ -186,11 +186,11 @@ a number of possible ways:
gcc-3.3.6 gcc-4.1.1` will install both version of GCC (and will
probably cause a user environment conflict\!).
- If [`--attr`](#opt-attr) (`-A`) is specified, the arguments are
*attribute paths* that select attributes from the top-level Nix
- If `--attr` (`-A`) is specified, the arguments are *attribute
paths* that select attributes from the top-level Nix
expression. This is faster than using derivation names and
unambiguous. To find out the attribute paths of available packages,
use `nix-env -qaP`.
unambiguous. To find out the attribute paths of available
packages, use `nix-env -qaP`.
- If `--from-profile` *path* is given, *args* is a set of names
denoting installed store paths in the profile *path*. This is an
@ -198,18 +198,19 @@ a number of possible ways:
another.
- If `--from-expression` is given, *args* are Nix
[functions](#ss-functions) that are called with the active Nix
expression as their single argument. The derivations returned by
those function calls are installed. This allows derivations to be
specified in an unambiguous way, which is necessary if there are
multiple derivations with the same name.
[functions](../expressions/language-constructs.md#functions)
that are called with the active Nix expression as their single
argument. The derivations returned by those function calls are
installed. This allows derivations to be specified in an
unambiguous way, which is necessary if there are multiple
derivations with the same name.
- If *args* are store derivations, then these are
[realised](#rsec-nix-store-realise), and the resulting output paths
[realised](nix-store.md#operation---realise), and the resulting output paths
are installed.
- If *args* are store paths that are not store derivations, then these
are [realised](#rsec-nix-store-realise) and installed.
are [realised](nix-store.md#operation---realise) and installed.
- By default all outputs are installed for each derivation. That can
be reduced by setting `meta.outputsToInstall`.
@ -319,9 +320,9 @@ left untouched; this is not an error. It is also not an error if an
element of *args* matches no installed derivations.
For a description of how *args* is mapped to a set of store paths, see
[`--install`](#rsec-nix-env-install). If *args* describes multiple store
paths with the same symbolic name, only the one with the highest version
is installed.
[`--install`](#operation---install). If *args* describes multiple
store paths with the same symbolic name, only the one with the highest
version is installed.
## Flags
@ -584,9 +585,9 @@ derivation is shown unless `--no-name` is specified.
- `--attr-path`; `-P`
Print the *attribute path* of the derivation, which can be used to
unambiguously select it using the [`--attr` option](#opt-attr)
available in commands that install derivations like `nix-env
--install`. This option only works together with `--available`
unambiguously select it using the `--attr` option available in
commands that install derivations like `nix-env --install`. This
option only works together with `--available`
- `--no-name`
Suppress printing of the `name` attribute of each derivation.

View file

@ -21,13 +21,13 @@ is printed in hexadecimal. To generate the same hash as
`nix-prefetch-url` you have to specify multiple arguments, see below for
an example.
The hash is computed over a *serialisation* of each path: a dump of the
file system tree rooted at the path. This allows directories and
symlinks to be hashed as well as regular files. The dump is in the *NAR
format* produced by [`nix-store` `--dump`](#refsec-nix-store-dump).
Thus, `nix-hash
path` yields the same cryptographic hash as `nix-store --dump
path | md5sum`.
The hash is computed over a *serialisation* of each path: a dump of
the file system tree rooted at the path. This allows directories and
symlinks to be hashed as well as regular files. The dump is in the
*NAR format* produced by [`nix-store
--dump`](nix-store.md#operation---dump). Thus, `nix-hash path`
yields the same cryptographic hash as `nix-store --dump path |
md5sum`.
# Options

View file

@ -21,11 +21,11 @@ Title: nix-instantiate
# Description
The command `nix-instantiate` generates [store
derivations](#gloss-derivation) from (high-level) Nix expressions. It
derivations](../glossary.md) from (high-level) Nix expressions. It
evaluates the Nix expressions in each of *files* (which defaults to
*./default.nix*). Each top-level expression should evaluate to a
derivation, a list of derivations, or a set of derivations. The paths of
the resulting store derivations are printed on standard output.
derivation, a list of derivations, or a set of derivations. The paths
of the resulting store derivations are printed on standard output.
If *files* is the character `-`, then a Nix expression will be read from
standard input.
@ -33,7 +33,7 @@ standard input.
# Options
- `--add-root` *path*; `--indirect`
See the [corresponding options](#opt-add-root) in `nix-store`.
See the [corresponding options](nix-store.md) in `nix-store`.
- `--parse`
Just parse the input files, and print their abstract syntax trees on
@ -69,7 +69,7 @@ standard input.
When used with `--eval`, print the resulting value as an XML
representation of the abstract syntax tree rather than as an ATerm.
The schema is the same as that used by the [`toXML`
built-in](#builtin-toXML).
built-in](../expressions/builtins.md).
- `--read-write-mode`
When used with `--eval`, perform evaluation in read/write mode so

View file

@ -79,13 +79,14 @@ 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](#gloss-validity) (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](#gloss-substitute) that produce the
outputs (e.g., by downloading them). Finally, the outputs can be
produced by performing the build action described by the derivation.
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 performing the build action 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
@ -129,11 +130,12 @@ Special exit codes:
- `101`
Build timeout, the build was aborted because it did not complete
within the specified [`timeout`](#conf-timeout).
within the specified `timeout`.
- `102`
Hash mismatch, the build output was rejected because it does not
match the specified [`outputHash`](#fixed-output-drvs).
match the [`outputHash` attribute of the
derivation](../expressions/advanced-attributes.md).
- `104`
Not deterministic, the build succeeded in check mode but the
@ -153,12 +155,12 @@ or.
## Examples
This operation is typically used to build store derivations produced by
[`nix-instantiate`](#sec-nix-instantiate):
[`nix-instantiate`](nix-instantiate.md):
$ nix-store -r $(nix-instantiate ./test.nix)
/nix/store/31axcgrlbfsxzmfff1gyj1bf62hvkby2-aterm-2.3.1
This is essentially what [`nix-build`](#sec-nix-build) does.
This is essentially what [`nix-build`](nix-build.md) does.
To test whether a previously-built derivation is deterministic:
@ -232,8 +234,7 @@ control what gets deleted and in what order:
or TiB units.
The behaviour of the collector is also influenced by the
[`keep-outputs`](#conf-keep-outputs) and
[`keep-derivations`](#conf-keep-derivations) variables in the Nix
`keep-outputs` and `keep-derivations` variables in the Nix
configuration file.
By default, the collector prints the total number of freed bytes when it
@ -307,17 +308,17 @@ symlink.
- `--force-realise`; `-f`
Realise each argument to the query first (see [`nix-store
--realise`](#rsec-nix-store-realise)).
--realise`](#operation---realise)).
## Queries
- `--outputs`
Prints out the [output paths](#gloss-output-path) of the store
Prints out the [output paths](../glossary.md) of the store
derivations *paths*. These are the paths that will be produced when
the derivation is built.
- `--requisites`; `-R`
Prints out the [closure](#gloss-closure) of the store path *paths*.
Prints out the [closure](../glossary.md) of the store path *paths*.
This query has one option:
@ -334,7 +335,7 @@ symlink.
derivation and specifying the option `--include-outputs`.
- `--references`
Prints the set of [references](#gloss-reference) of the store paths
Prints the set of [references](../glossary.md) of the store paths
*paths*, that is, their immediate dependencies. (For *all*
dependencies, use `--requisites`.)
@ -352,7 +353,7 @@ symlink.
in the Nix store that are dependent on *paths*.
- `--deriver`; `-d`
Prints the [deriver](#gloss-deriver) of the store paths *paths*. If
Prints the [deriver](../glossary.md) 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.
@ -605,13 +606,12 @@ anyway. Likewise, all permissions are left out except for the execute
bit, because all files in the Nix store have 444 or 555 permission.
Also, a NAR archive is *canonical*, meaning that “equal” paths always
produce the same NAR archive. For instance, directory entries are always
sorted so that the actual on-disk order doesnt influence the result.
This means that the cryptographic hash of a NAR dump of a path is usable
as a fingerprint of the contents of the path. Indeed, the hashes of
store paths stored in Nixs database (see [`nix-store -q
--hash`](#refsec-nix-store-query)) are SHA-256 hashes of the NAR dump of
each store path.
produce the same NAR archive. For instance, directory entries are
always sorted so that the actual on-disk order doesnt influence the
result. This means that the cryptographic hash of a NAR dump of a
path is usable as a fingerprint of the contents of the path. Indeed,
the hashes of store paths stored in Nixs database (see `nix-store -q
--hash`) are SHA-256 hashes of the NAR dump of each store path.
NAR archives support filenames of unlimited length and 64-bit file
sizes. They can contain regular files, directories, and symbolic links,

View file

@ -71,35 +71,34 @@ Most Nix commands accept the following command-line options:
- `--max-jobs` / `-j` *number*
Sets the maximum number of build jobs that Nix will perform in
parallel to the specified number. Specify `auto` to use the number
of CPUs in the system. The default is specified by the
[`max-jobs`](#conf-max-jobs) configuration setting, which itself
defaults to `1`. A higher value is useful on SMP systems or to
exploit I/O latency.
of CPUs in the system. The default is specified by the `max-jobs`
configuration setting, which itself defaults to `1`. A higher
value is useful on SMP systems or to exploit I/O latency.
Setting it to `0` disallows building on the local machine, which is
useful when you want builds to happen only on remote builders.
- `--cores`
Sets the value of the `NIX_BUILD_CORES` environment variable in the
invocation of builders. Builders can use this variable at their
discretion to control the maximum amount of parallelism. For
Sets the value of the `NIX_BUILD_CORES` environment variable in
the invocation of builders. Builders can use this variable at
their discretion to control the maximum amount of parallelism. For
instance, in Nixpkgs, if the derivation attribute
`enableParallelBuilding` is set to `true`, the builder passes the
`-jN` flag to GNU Make. It defaults to the value of the
[`cores`](#conf-cores) configuration setting, if set, or `1`
otherwise. The value `0` means that the builder should use all
available CPU cores in the system.
`-jN` flag to GNU Make. It defaults to the value of the `cores`
configuration setting, if set, or `1` otherwise. The value `0`
means that the builder should use all available CPU cores in the
system.
- `--max-silent-time`
Sets the maximum number of seconds that a builder can go without
producing any data on standard output or standard error. The default
is specified by the [`max-silent-time`](#conf-max-silent-time)
configuration setting. `0` means no time-out.
producing any data on standard output or standard error. The
default is specified by the `max-silent-time` configuration
setting. `0` means no time-out.
- `--timeout`
Sets the maximum number of seconds that a builder can run. The
default is specified by the [`timeout`](#conf-timeout) configuration
setting. `0` means no timeout.
default is specified by the `timeout` configuration setting. `0`
means no timeout.
- `--keep-going` / `-k`
Keep going in case of failed builds, to the greatest extent
@ -145,16 +144,17 @@ Most Nix commands accept the following command-line options:
operations will fail.
- `--arg` *name* *value*
This option is accepted by `nix-env`, `nix-instantiate`, `nix-shell`
and `nix-build`. When evaluating Nix expressions, the expression
evaluator will automatically try to call functions that it
encounters. It can automatically call functions for which every
argument has a [default value](#ss-functions) (e.g., `{ argName ?
defaultValue }:
...`). With `--arg`, you can also call functions that have arguments
without a default value (or override a default value). That is, if
the evaluator encounters a function with an argument named *name*,
it will call it with value *value*.
This option is accepted by `nix-env`, `nix-instantiate`,
`nix-shell` and `nix-build`. When evaluating Nix expressions, the
expression evaluator will automatically try to call functions that
it encounters. It can automatically call functions for which every
argument has a [default
value](../expressions/language-constructs.md#functions) (e.g.,
`{ argName ? defaultValue }: ...`). With `--arg`, you can also
call functions that have arguments without a default value (or
override a default value). That is, if the evaluator encounters a
function with an argument named *name*, it will call it with value
*value*.
For instance, the top-level `default.nix` in Nixpkgs is actually a
function:
@ -165,28 +165,28 @@ Most Nix commands accept the following command-line options:
}: ...
So if you call this Nix expression (e.g., when you do `nix-env -i
pkgname`), the function will be called automatically using the value
[`builtins.currentSystem`](#builtin-currentSystem) for the `system`
argument. You can override this using `--arg`, e.g., `nix-env -i
pkgname --arg system
\"i686-freebsd\"`. (Note that since the argument is a Nix string
literal, you have to escape the quotes.)
pkgname`), the function will be called automatically using the
value [`builtins.currentSystem`](../expressions/builtins.md) for
the `system` argument. You can override this using `--arg`, e.g.,
`nix-env -i pkgname --arg system \"i686-freebsd\"`. (Note that
since the argument is a Nix string literal, you have to escape the
quotes.)
- `--argstr` *name* *value*
This option is like `--arg`, only the value is not a Nix expression
but a string. So instead of `--arg system \"i686-linux\"` (the outer
quotes are to keep the shell happy) you can say `--argstr system
i686-linux`.
This option is like `--arg`, only the value is not a Nix
expression but a string. So instead of `--arg system
\"i686-linux\"` (the outer quotes are to keep the shell happy) you
can say `--argstr system i686-linux`.
- `--attr` / `-A` *attrPath*
Select an attribute from the top-level Nix expression being
evaluated. (`nix-env`, `nix-instantiate`, `nix-build` and
`nix-shell` only.) The *attribute path* *attrPath* is a sequence of
attribute names separated by dots. For instance, given a top-level
Nix expression *e*, the attribute path `xorg.xorgserver` would cause
the expression `e.xorg.xorgserver` to be used. See [`nix-env
--install`](#refsec-nix-env-install-examples) for some concrete
examples.
`nix-shell` only.) The *attribute path* *attrPath* is a sequence
of attribute names separated by dots. For instance, given a
top-level Nix expression *e*, the attribute path `xorg.xorgserver`
would cause the expression `e.xorg.xorgserver` to be used. See
[`nix-env --install`](nix-env.md#operation---install) for some
concrete examples.
In addition to attribute names, you can also specify array indices.
For instance, the attribute path `foo.3.bar` selects the `bar`