Over the past years of using nixos the nix store has grown larger and larger despite not really installing much new software and regular garbage collects. The fact that currently, hardlinking saves about 100GiB and that with only having the two newest generations in the store it still occupies 135 GiB has me suspecting that some installed packages carry along different versions of a lot of dependencies.
So how does one go about analyzing this? Is there a tool generating something like a dependency tree explaining why certain things are in the store and can’t be garbage collected? Or is there tooling telling me how “expensive” certain packages are in terms of storage?
in my experience GHC hits my store massively with multiple GHC installed at the same time. Ic that i have currently 8.4.4, 8.2.3, 8.2.2, 8.2.1 pulled in.
Ok so I see a lot of haskell packages in there with large sizes and three huge packages for idris-1.3.0. Is there a way to tell why they are there (especially why there are three packages for the same idris version)?
Is it really the same version? I don’t think so. They have different hashes thus implying a different derivation. You can select for each the .drv file and check the differences in nix show-derivation /nix/store/...-idris-1.3.0.drv. A nice tool to see difference is nix-diff