Hello Mikhail, Mikhail Kryshen <[email protected]> skribis:
> Is there some reason why "guix pull" keeps profile symlinks in > ~/.config/guix instead of under /var/guix/profiles? It’s mostly because it takes less code to do it this way. :-) This was briefly discussed during the submission of this patch series. > I'm looking into installing Guix on multiple computers with shared user > accounts and /home on NFS. So far the possibilities seem to be: > > 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.” Writing the profile to /var/guix/profiles would indeed solve this specific issue. > 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. Option b) causes all the issues you mention, and this is not specific to the new ‘guix pull’ (you had similar issues with ~/.config/guix/latest before, for instance.) > Can/should this be fixed? We can do it. In fact my take on this was to keep it simple for now, and to adjust if/when someone reports a need for this—which I think you just did. :-) > Another question is why ~/.config/guix/current/etc/profile does not > define all necessary environment variables (PATH is there, but no > INFOPATH, GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH)? It would be > convenient to source it in .bash_profile the same way as normal > guix-profile instead of defining all necessary variables explicitly. The reason it doesn’t define INFOPATH for example is because INFOPATH “belongs” to Texinfo, and Texinfo is not in that profile; similarly for GUILE_LOAD_PATH. 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. Thanks for your feedback, Ludo’.
