Terms and Definitions in Nix Project
Terms and Definitions
If you come across a term or word you don't know, add it here.
Term | Context | Meaning | Related Links |
---|---|---|---|
rec { }
|
Nix expressions | The { } block contains "mutually recursive" attributes, which means they can refer to each other.
|
Composing the Hello Package |
expression evaluator
|
Nix | The part of the Nix program which reads and evaluates a Nix expression. | Nix Manual: Common Options --arg Nix Manual: Built-in Functions |
Derivation | Nix | A Nix expression which describes a build action. When evaluated, it creates one or more entries in the Nix Store. The nix-instantiate command is the command which creates entries in the Nix Store, while the nix-env and nix-build commands are its user-friendly interface.
|
Nix Manual: Glossary -> Derivation Nix Manual: Derivation |
stdenv
|
Nix expressions | An attribute which contains things expected in the most basic Unix environment. (e.g. Bash shell, gcc , cp , tar , grep , etc.)
|
all-packages.nix: stdenv = ]
|
User Environment | Nix | A set of "active" applications. These applications often exist in the Nix store. A single Nix user may have multiple User Environments. | Nix Manual: Glossary |
User Profile | Nix | A user's currently selected User Environment. | Nix Manual: Glossary |
Generation
|
Nix | A past revision of a user's environment. This term connotes the cloning and modification of an existing user environment. Nix's environment rollback facilities rely on Generations. | Nix Manual: Profiles |
config.nix or nixpkgs-config.nix
|
NixOS Wiki | A Nix expression retrieved by and applied to the all-packages.nix Nix expression. This file enables an end-user to customize the Nix expressions contained in the community-owned NixPkgs list or to define entirely new Nix expressions to use with Nix commands. This file's path can be overridden by the NIXPKGS_CONFIG environment variable.
|
all-packages.nix: config
|
attribute path | nix-env takes this if you pass the `-A` flag [1] | an unambiguous identifier for a package | |
symbolic package name | [2] | This string represents what you commonly think of as a package. There can be multiple packages with the symbolic name "hello". | |
selector | this term is used in nix-env error messages [3], it seems to be actually a DrvName struct [4] (a derivation name) | see "symbolic package name" | |
selection path | nix-shell error message [5] | see "attribute path"[6] | |
derivation name | manual[7], source code [8] | see "symbolic package name" | |
package name | IRC[9] | see "symbolic package name" | |
attribute selection path | source[10] | see "attribute path" |