|
Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
|
R""(
Note: this command's interface is based heavily around installables, which you may want to read about first (nix --help).
Show one path through the dependency graph leading from Hello to Glibc:
Show all files and paths in the dependency graph leading from Thunderbird to libX11:
Show why Glibc depends on itself:
Show why Geeqie has a build-time dependency on systemd:
Lix automatically determines potential runtime dependencies between store paths by scanning for the hash parts of store paths. For instance, if there exists a store path /nix/store/9df65igwjmf2wbw0gbrrgair6piqjgmi-glibc-2.31, and a file inside another store path contains the string 9df65igw…, then the latter store path refers to the former, and thus might need it at runtime. Lix always maintains the existence of the transitive closure of a store path under the references relationship; it is therefore not possible to install a store path without having all of its references present.
Sometimes Lix packages end up with unexpected runtime dependencies; for instance, a reference to a compiler might accidentally end up in a binary, causing the former to be in the latter's closure. This kind of closure size bloat is undesirable.
nix why-depends allows you to diagnose the cause of such issues. It shows why the store path package depends on the store path dependency, by showing a shortest sequence in the references graph from the former to the latter. Also, for each node along this path, it shows a file fragment containing a reference to the next store path in the sequence.
To show why derivation package has a build-time rather than runtime dependency on derivation dependency, use --derivation.
)""