Hi! I run GuixSD on a rather small partition (<25GB) and quite often the partition gets full during a transation and I end up having to clean up the store (e.g. "guix gc -F5G").
The problem is that more often than not, "guix gc" will remove store items that are almost always needed for the next transaction, which results in a huge re-update of those newly missing packages. What a waste of time... It would be nice if "guix gc" would be a bit smarter and remove items that are less likely to be needed for the next transaction. Or maybe I'm missing the point? The store does not have timestamps, so removing old items would not work I guess. But what about removing older versions first? Say I have glibc-2.24 and glibc-2.25, only remove glibc-2.24 if that's enough to free the required space. Maybe we could introduce a "whitelist" of packages to delete last. In the end I figured that the most convenient way to clean up the store might be to do it manually with "guix gc --delete PATH". Well, not so from the commandline, but with guix.el I thought we could do something nice. So I gave it a (quick&dirty™) shot: https://gitlab.com/emacs-guix/emacs-guix/issues/2 With guix.el loaded, `eval' my example and run "M-x guix-store". This will return a list of all the dead links, which you can sort by name or by size. You can then mark items ("m") and delete them ("k"). What do you people think? While I'm at it, I'd like to note that something might be wrong with the `-F` option: I never get the promised amount of free space back, only about 2/3 of it. -- Pierre Neidhardt
signature.asc
Description: PGP signature