nix manipulate or query the Nix store nix operation options arguments Description The command nix provides access to the Nix store. This is the (set of) path(s) where Nix expressions and the file system objects built by them are stored. nix has many subcommands called operations. These are individually documented below. Exactly one operation must always be provided. Common Options In this section the options that are common to all Nix operations are listed. These options are allowed for every subcommand (although they may not always have an effect). Indicates that any identifier arguments to the operation are paths in the store rather than identifiers. Increases the level of verbosity of diagnostic messages printed on standard error. For each Nix operation, the information printed on standard output is well-defined and specified below in the respective sections. Any diagnostic information is printed on standard error, never on standard output. This option may be specified repeatedly. Currently, the following verbosity levels exist: 0 Print error messages only. 1 Print informational messages. 2 Print even more informational messages. 3 Print messages that should only be useful for debugging. 4 Vomit mode: print vast amounts of debug information. Operation <option>--install</option> Synopsis nix ids Description The operation realises the Nix expressions identified by ids in the file system. If these expressions are derivation expressions, they are first normalised. That is, their target paths are are built, unless a normal form is already known. The identifiers of the normal forms of the given Nix expressions are printed on standard output. Operation <option>--delete</option> Synopsis nix paths Description The operation unconditionally deletes the paths paths from the Nix store. It is an error to attempt to delete paths outside of the store. This operation should almost never be called directly, since no attempt is made to verify that no references exist to the paths to be deleted. Therefore, careless deletion can result in an inconsistent system. Deletion of paths in the store is done by the garbage collector (which uses to delete unreferenced paths). Operation <option>--query</option> Synopsis nix args Description The operation displays various bits of information about Nix expressions or paths in the store. The queries are described in . At most one query can be specified; the default query is . Queries Prints out the target paths of the Nix expressions indicated by the identifiers args. In the case of a derivation expression, these are the paths that will be produced by the builder of the expression. In the case of a slice expression, these are the root paths (which are generally the paths that were produced by the builder of the derivation expression of which the slice is a normal form). This query has one option: Causes the target paths of the normal forms of the expressions to be printed, rather than the target paths of the expressions themselves. Prints out the requisite paths of the Nix expressions indicated by the identifiers args. The requisite paths of a Nix expression are the paths that need to be present in the system to be able to realise the expression. That is, they form the closure of the expression in the file system (i.e., no path in the set of requisite paths points to anything outside the set of requisite paths). The notion of requisite paths is very useful when one wants to distribute Nix expressions. Since they form a closure, they are the only paths one needs to distribute to another system to be able to realise the expression on the other system. This query is generally used to implement various kinds of distribution. A source distribution is obtained by distributing the requisite paths of a derivation expression. A binary distribution is obtained by distributing the requisite paths of a slice expression (i.e., the normal form of a derivation expression; you can directly specify the identifier of the slice expression, or use and specify the identifier of a derivation expression). A cache distribution is obtained by distributing the requisite paths of a derivation expression and specifying the option . This will include not just the paths of a source and binary distribution, but also all expressions and paths of subterms of the source. This is useful if one wants to realise on the target system a Nix expression that is similar but not quite the same as the one being distributed, since any common subterms will be reused. This query has a number of options: Causes the requisite paths of the normal forms of the expressions to be printed, rather than the requisite paths of the expressions themselves. Excludes the paths of Nix expressions. This causes the closure property to be lost, that is, the resulting set of paths is not enough to ensure realisibility. Also include the requisites of successors (normal forms). Only the requisites of known successors are included, i.e., the normal forms of derivation expressions that have never been normalised will not be included. Note that not just the successor of a derivation expression will be included, but also the successors of all input expressions of that derivation expression. I.e., all normal forms of subterms involved in the normalisation of the top-level term are included. For each identifier in args, prints all expansions of that identifier, that is, all paths whose current content matches the identifier. Prints a graph of the closure of the expressions identified by args in the format of the dot tool of AT&T's GraphViz package.