A common concern of sysadmins’ is whether this is all going to eat a lot of disk space. If anything, if something is going to exhaust disk space, it’s going to be scientific data sets rather than compiled software—that’s our experience with almost ten years of Guix usage on HPC clusters. Nevertheless, it’s worth taking a look at how Guix contributes to disk usage.
First, having several versions or variants of a given package in
/gnu/store does not necessarily cost much, because
guix-daemon implements deduplication of identical files, and
package variants are likely to have a number of common files.
As mentioned above, we recommend having a cron job to run
periodically, which removes unused software from
/gnu/store. However, there’s always a possibility that users will
keep lots of software in their profiles, or lots of old generations of
their profiles, which is “live” and cannot be deleted from the
The solution to this is for users to regularly remove old generations of their profile. For instance, the following command removes generations that are more than two-month old:
guix package --delete-generations=2m
Likewise, it’s a good idea to invite users to regularly upgrade their profile, which can reduce the number of variants of a given piece of software stored in /gnu/store:
guix pull guix upgrade
As a last resort, it is always possible for sysadmins to do some of this on behalf of their users. Nevertheless, one of the strengths of Guix is the freedom and control users get on their software environment, so we strongly recommend leaving users in control.