Nix Store
Graph Database
- Graph database
/nix/store
on your disk - the contents of a given Node is guaranteed to be functionally identical to a Node with the same name in some other Graph, regardless of where they’re built. ^f3ec53
3mfcmgmpcqjajpdhfh8pdazmmd4vskns-nix-2.3.3-man/
h9bvv0qpiygnqykn4bf7r3xrxmvqpsrd-nix-2.3.3/
nrb3rkvwz114053yh00r7p2dlc9igp03-nix-2.3.3.drv
- the first part of a Store path (the 32-character-long alphanumeric blob) is a cryptographic hash
# finding Nodes that this packages has Edges pointing to
nix-store --query --references vpa8g025zp9drs73i2jj5vk3923vcdg9-libsodium-1.0.18
# finding Edges poiting to this Node
nix-store --query --referers vpa8g025zp9drs73i2jj5vk3923vcdg9-libsodium-1.0.18
nix-store --query --graph /nix/store...-ruby-2.6.5 | dot -Tsvg
- garbage collection
- purge unused packages
nix-collect-garbage
- purge unused packages
- Binary Cache
- a server with prebuilt Nix packages
transitive closure
- An Edge directed from a Node is logically a dependency: if a Node includes a reference to another Node, it depends on that Node.
- the transitive closure (
--requisites
) also includes those dependencies’ dependencies, and so on recursively, to include the total set of things depended on by a given Node.
Notes mentioning this note
nix-derivation
[!Derivation] A Derivation is a special Node in the Nix store, which tells Nix how to build one or more...
Nix Ecosystem Overview
Software is graph of dependencies
Typically this graph is implicit
Nix makes it explicit