Ludovic Courtès writes: >> a) master node running guix-daemon [1] >> - will "guix gc" destroy guix/current profiles if /home is not >> mounted on the master node? What if some users have local >> home directories and some are on nfs? > >> [1] https://guix-hpc.bordeaux.inria.fr/blog/2017/11/installing-guix-on-a-cluster/ > > This is what I would recommend, and as the post suggests, you’ll have to > make sure home directories are visible to guix-daemon, which means > having them mounted on the master node. > > If you don’t do that, there’s a risk that user-pulled Guixes will be > reclaimed prematurely, simply because the GC won’t see that they are > still “live.” But ~root is local on each machine, so root-pulled Guix will still not be protected from gc. Btw, is option a) possible on GuixSD? >> b) guix-daemon on every computer >> - then /gnu/store and /var/guix/profiles will by local and user >> profiles can be different on every computer, but >> ~/.config/guix/current will link to nonexistent store item if >> "guix pull" was invoked by the same user on a different machine. > > If this is a cluster, I would definitely recommend option a), which > provides a single world view, shared storage, etc. It's for GNU/Linux workstations in university labs. I want to use Guix to provide additional software that is not available in required configuration in the host distro, and also give students an interesting environment to experiment. I decided for now to go with the option b) for performance and reliability. My previous attempts to deploy large software packages on NFS (even with FS-Cache enabled) didn't work well. Also, it may be possible to somehow exploit immutability of the store items to share and cache them more efficiently. The computers periodically run "guix pull" as root and I want to make the updated Guix automatically available to all users, but /usr/local/bin/guix can't be linked to /root/.config/guix/current/bin/guix as the /root directory is normally not searchable by other users — another reason to keep pulled Guix profiles in /var. I workaround this by having the script that runs "guix pull" to symlink /usr/local/bin/guix directly into the new profile in /gnu/store. > I agree it would be useful (the way we do it on GuixSD is by having > /etc/profile define INFOPATH systematically, for instance), but there’s > no clear way to have ~/.config/guix/current/etc/profile define them > directly. It would be useful to have a similar script included in the guix package to be symlinked into host distro's /etc/profile.d Thank you, Mikhail