Subject: Re: bug#33647: First `guix pull' behaves unexpectedly

From: Diego Nicola Barbato <[email-masked]>
Date: Fri, 07 Dec 2018 09:36:31 +0100

Hello,

Ludovic Courtès <[email-masked]> writes:

> Hello,
>
> Ricardo Wurmus <[email-masked]> skribis:
>
>>> Hello Guix,
>>>
>>> The first time a user runs ‘guix pull’ after a fresh install it does not
>>> seem to update guix.  ‘guix --version’ reports that guix is still
>>> version 0.15.0 after running ‘guix pull’, instead of showing the hash of
>>> the latest commit.
>>
>> “guix pull” should have reminded you to add ~/.config/guix/current/bin
>> to the front of your PATH environment variable.  When you do that you
>> will be using the new version of Guix.

I forgot to mention that this is on GuixSD, where
~/.config/guix/currend/bin is already in PATH, which maybe explains why
I did not get a reminder.

> In addition, be aware that Bash maintains a cache of commands it looked
> up in $PATH.  Thus it may be that, say, it had cached that ‘guix’ is
> really /run/current-system/profile/bin/guix.  When you pulled, it didn’t
> invalidate its cache thus you kept using that old version.
>
> The solution is to run “hash guix” at the Bash prompt to force cache
> invalidation (info "(bash) Bourne Shell Builtins").

I believe this is it.  This also explains why ‘which guix’ returned the
updated guix while ‘guix --version’ claimed it was still the older
version, which I found rather confusing.
I am afraid being unaware of this has led me to inadvertently downgrade
GuixSD whenever I reconfigured for the first time after a fresh install.

Thanks!

Diego