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
      
  • 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