Terms and Definitions in Nix Project
From NixOS Wiki
Terms and Definitions
If you come across a term or word you don't know, add it here.
|User Environment||Nix||A set of "active" applications. These applications usually exist in the Nix store. A single Nix user may have multiple User Environments. This is an important concept further explored in User Environment. Profiles and generations are closely related.|
|(User) Profile||Nix|| Profiles simplify managing and switching between user environments (and thus, control which applications and system configurations are used). Most generally, a profile is a link to a generation, and there's a profiles (note the s) folder which collects types of profiles together so that they form lists of generations. In standalone Nix (e.g. on a different Linux distro), its primary use is user profiles. In NixOS, there is also the system profile, which manages system-wide configuration (e.g. /etc, the kernel, initrd, systemd). Tools like Home Manager also have their own profile (which would also be per-user). The user's active profile is defined in ~/.nix-profile, and is what all nix-env commands would operate on by default.
❯ ls -l ~/.nix-profile lrwxrwxrwx ... /home/username/.nix-profile -> /nix/var/nix/profiles/per-user/username/profile
| Nix Manual: Profiles|
Nix Pills - The first profile
|Generation||Nix||A revision of a user environment, newly created every time the system is updated (with old ones being preserved until manually removed). Technically, each generation is simply a link to a specific user environment in the Nix store. This term connotes the cloning and modification of an existing user environment. Nix's environment rollback facilities rely on Generations. The current generation is a user's currently selected user environment, and is generally selected via the active profile (which is just a symlink, normally in /nix/var/nix/profiles/).||Nix Manual: Profiles|
|Derivation||Nix|| A Nix expression which describes a build action. High-level derivations (like the ones describing packages in Nixpkgs), get evaluated into low-level derivations (called store derivations — because they wind up in the Nix store).
|| Nix Manual: Glossary - Derivation |
Nix Manual: Derivation
|Output path||Nix|| A store path produced by a derivation. These are generally analogous to built packages, or pieces of them.
❯ ls -ld /nix/store/*-firefox-9*/ dr-xr-xr-x ... /nix/store/v4b8...3d0w-firefox-92.0/
|Nix Manual: Derivation|
||Nix expressions|| The
||Composing the Hello Package|
||Nix||The part of the Nix program which reads and evaluates a Nix expression.|| Nix Manual: Common Options |
Nix Manual: Built-in Functions
||Nix expressions|| An attribute which contains things expected in the most basic Unix environment. (e.g. Bash shell,
|| all-packages.nix: |
||NixOS Wiki|| A Nix expression retrieved by and applied to the
|| all-packages.nix: |
|attribute path||nix-env takes this if you pass the `-A` flag ||an unambiguous identifier for a package|
|symbolic package name||||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 , it seems to be actually a DrvName struct  (a derivation name)||see "symbolic package name"|
|selection path||nix-shell error message ||see "attribute path"|
|derivation name||manual, source code ||see "symbolic package name"|
|package name||IRC||see "symbolic package name"|
|attribute selection path||source||see "attribute path"|