Subject: Re: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix

From: [email-masked] (Ludovic Courtès)
Date: Wed, 06 Jun 2018 15:27:59 +0200

Hello!

Fis Trivial <[email-masked]> skribis:

>>      The result of running ‘guix pull’ is a “profile” available under
>>   ‘~/.config/guix/current’ containing the latest Guix.  Thus, make sure to
>>   add it to the beginning of your search path so that you use the latest
>>   version, and similarly for the Info manual (*note Documentation::):
>>
>>        export PATH="$HOME/.config/guix/current/bin:$PATH"
>>        export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
>>
>
> This sounds like something could be done by guix itself, choosing the
> right profile path by $HOME. Since guix has absolute control about this
> piece of information?

I think it would be bad for Guix to modify your ~/.bashrc directly, so
it’s better to let users do that.

GuixSD will have the right PATH and INFOPATH by default, though.

>> Caveats:
>>
>>   1. The ~/.config/guix/current profile really lives there.  That is,
>>      unlike ~/.guix-profile, it’s not in /var/guix/profiles/per-user.
>>      That could be an issue for cluster setups where home directories
>>      are not scanned by the Guix GC.  Cluster folks, please tell me!
>
> What does that mean? We have a guix directory under $HOME/.config,
> inside there's a symlink to /gnu/store/...-guix-<commit>. Does "really
> lives there" mean the new profile is not a symlink but a concrete
> directory or hard link?

Please see how ~/.guix-profile and
/var/guix/profiles/per-user/$USER/guix-profile work together.  Basically
generations show up in /var/guix/profiles, whereas ~/.guix-profile is a
fixed symlink.

>>   3. C++ code is not built.  I wonder which will come first: getting rid
>>      of the C++ code, or building it?  :-)
>>
> In the future world, how do we update guix daemon? Is't still running
> guix pull && guix package -u under root user?

In the future world, ‘guix pull’ updates everything: client-side and
daemon.  Currently it’s still client-side only.

HTH!

Ludo’.