Subject: 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