Subject: Re: bug#42810: Guix doesn't follow all symlinks

From: zimoun <[email-masked]>
Date: Wed, 16 Sep 2020 09:26:35 +0200

Dear,

On Wed, 16 Sep 2020 at 08:45, Steffen Rytter Postas <[email-masked]> wrote:

> > Well, I am not sure to understand why you want this setup since
> > “guix-daemon” needs (really) few updates and as regular user, when
> > doing
> > “guix pull”, if there is major upgrade, then it will be announced
> > with
> > “guix pull –news”.  We all like different tastes. :-)
>
> I also wanted to maintain only one copy of "guix" usable, instead of
> having one version of guix per user, which is a lot harder to maintain.

But the point of Guix is: each user manages their own version, isn't it?
From my point of view, it does not make sense to try to maintain only
one central copy, because in any case, each user can run:

  guix time-machine -C <channels.scm> -- <command>
  guix time-machine --commit=<hash> -- <command>

so each user can install, remove, etc. any version of Guix (specified
by <channels.scm> and <hash>) independently of the version of "guix
time-machine".

Well, I am not sure to understand the aim of the configuration you want to.

> > So you need to have also in the correct symlinks with
> > ’lib/{guile,guix}’
> > and others.
>
> How would I set this up? This happens on a default Guix setup following
> the standard installation guide for installing on a foreign
> distribution, and then setting up the channel configuration as
> mentioned.

I do not know how you could setup your non-standard usage of Guix.

Maybe you could try as root:

   sudo guix pull -p /usr

then place /usr in the correct paths (PATH, LIBRARY_PATH, etc.) for
each user.  However, it will be easy for one user to by-pass your
setup and use any version of Guix they wants:

   /usr/bin/guix pull -p /path/somewhere/to/user-home

then the user can correctly set up the paths so that "guix" will refer
to the one living at /path/somewhere/to/user-home/.

Well, from my understanding, you are trying to set up Guix in the
paradigm of classic package manager, not in its "philosophy".

> > I have not investigated but I guess the issue you hit comes from
> > ’lib/guix/package.cache’, correctly see by
> > /var/guix/profiles/…/bin/guix’ but not all your other symlink
> > machinery.
> >
>
> This does make sense, if that is somehow only read from a non-store
> location (I'm not sure why it would be, that seems against all the
> point of guix in the first place).

I am not sure to understand what you mean.

Do the explanations help?

All the best,
simon