Glossary¶
- builder program¶
The program run in a derivation. Sometimes shortened to “builder”.
- derivation¶
A build step. A description of a program to run — called a builder program — to produce files. Derivations can depend on the results of other derivations. Derivations are created with the
derivation()built-in function. See the Derivation Specification for a full reference.- store directory¶
A collection of build artifacts and source files, each of which is called a store object.
The conventional store directory is:
/opt/zb/storeon Linux and macOSC:\zb\storeon Windows
- store object¶
A file, directory, or symbolic link that is an immediate child of the store directory.
- store path¶
An absolute filesystem path of a store object. See the page on Store Paths for a full reference.
- realization¶
A mapping from derivation output to a store path. See the Realizations Binary Cache Specification for the details of the data model.
Realization can also refer to the process of producing store objects for a set of derivation outputs — the process started by a
zb buildcommand. While this is sometimes called “building”, realization may not involve running builder programs: in the case of a fully cached realization, realization would only obtain store objects from the local store and remote stores based on previous known realizations (mappings).- system value¶
- system triple¶
The
systemvalue of a derivation is used to specify a class of machines that can execute the derivation’s builder. The format is intentionally compatible with LLVM target triples (which are, in turn, similar to GCC target triples).systemvalues are a hyphen-separated collection of architecture, vendor, operating system, and environment components. Common values include:x86_64-unknown-linuxfor Linux running on a 64-bit Intel CPUaarch64-apple-macosfor macOS running on a 64-bit ARM processor (Apple Silicon)x86_64-pc-windowsfor Windows running on a 64-bit Intel CPU
The full syntax of a
systemvalue is defined insystemvalues specification.- Nix Archive¶
- NAR¶
The Nix Archive (NAR) format is a binary format for serializing files, directories, and symbolic links. The format has a single, canonical representation of file contents: it excludes file times, excludes permission bits other than executable on regular files, and has a well-defined directory listing order.
- Nix Base-32¶
Nix uses a base-32 binary-to-text encoding for hashes and store paths. This encoding uses a custom alphabet and is not compliant with RFC 4648. The exact algorithm is specified in The Purely Functional Software Deployment Model Page 97. For compatibility, zb also uses this encoding.