[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Multiple profiles with Guix Home
From: |
John Kehayias |
Subject: |
Re: Multiple profiles with Guix Home |
Date: |
Sun, 03 Oct 2021 20:51:20 +0000 |
Hello Liliana and Guix-ers,
I like this idea as a more integrated way of using multiple profiles in Guix,
which I think is a unique and powerful feature of Guix. Having more first class
citizen support of profiles I think is long overdue. Thanks for the proposal!
I'm curious about what else we can then build into this service that might help
some of the issues around multiple profiles that have come up before. At the
very least it seems this would be a good building block for doing operations
where otherwise you'd have to do a bit of looping over profiles (as suggested
in the Cookbook, and I think many of us do on our own) like updating packages.
There are also some issues that have been raised before that I think this could
help address, so here are a few that I've seen that could have some relevance
here. Mostly around search-paths and environment variables that get tricky with
multiple profiles active. Perhaps not all relevant, but I wanted to
cross-reference some related (to me, at least) discussions around multiple
profile support in Guix:
Recently, we discussed this in the context of some environment variables like
XDG_DATA_DIRS, and the more elusive XDG_CONFIG_DIRS here
https://issues.guix.gnu.org/50103 The issues is with search-paths and
different profiles (e.g. needing a glib package to make sure XDG_DATA_DIRS gets
updated). With a more integrated approach to multiple profiles, could this help
with combined search-paths?
Older, with dbus: https://issues.guix.gnu.org/48538 Here there is a hardcoded
default user profile lookup
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/xorg.scm#n851
Finally, I think this proposal subsumes the old discussion on
https://issues.guix.gnu.org/20255 and I think would be more "canonical" with
Guix Home now part of Guix.
Anyway, Guix Home does look like a good fit for better profile support and
these related edge cases with profiles. I'll just summarize my current usage of
profiles, which I think others do as well as it comes from the Cookbook. I have
several profiles for different sets of packages, like "desktop," "emacs," and
so on, with the default ~/.guix-profile being a testing ground or to quickly
use something (temporarily or before moving into a profile). ~/.config/guix has
a profiles directory to store each of these and a manifests directory to store
the manifests for each. I use a simple bash loop to e.g. guix package for each
profile to update with the manifest, or guix gc to clean up.
Hope this is helpful for this discussion,
John