I use shell.nix
+ direnv
extensively to manage project dependencies, and my store looks like this, I tried nix-collect-garbage -d
but it doesn’t do much, saving maybe 1GB or so.
So I’m looking for ways to optimize this more if possible…
I use shell.nix
+ direnv
extensively to manage project dependencies, and my store looks like this, I tried nix-collect-garbage -d
but it doesn’t do much, saving maybe 1GB or so.
So I’m looking for ways to optimize this more if possible…
The first place to start is nix-store --gc --print-roots
That will show you all the places that are currently holding things alive, which for your case will likely include a lot of project directories with .direnv
caches.
If a project is idle, you can just remove that directory and let the store references be gc’d. In all probability, when you next pick up the project, your first step will be to update to current inputs anyway.