unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#42810: Guix doesn't follow all symlinks
@ 2020-08-11 13:54 Steffen Rytter Postas via Bug reports for GNU Guix
  2020-09-15 23:02 ` zimoun
  2021-07-05  9:35 ` zimoun
  0 siblings, 2 replies; 9+ messages in thread
From: Steffen Rytter Postas via Bug reports for GNU Guix @ 2020-08-11 13:54 UTC (permalink / raw)
  To: 42810

Hi,

Some background first, to better understand the issue:
I've been running Guix on a foreign distribution
with my own channel in ~/.config/guix/channels.scm for some time now. 
However this means having to deal with doing both a `guix pull` as
 a user, but also `guix pull` as superuser to keep the system
builder daemon etc up to date.
I wanted to avoid this, by using simply a system-wide guix install, and
not have my own user have a guix variant. I tried simply deleting
~/.config/guix/current symlink, and confirmed that `guix` was now using
the `/usr/local/bin/guix` symlink.
Then I moved my ~/.config/guix/channels.scm file to
/etc/guix/channels.scm
and satisfied with my setup, performed `sudo guix pull --fallback` to
pull the latest changes and verify it worked.
The command ran as expected, and printed the new packages from my
channel that were now available.

So, that's the background of what I've been trying to do. Here's what
happened:

I have in my own channel a package called `entr-git`. Installing it is
simple:

`guix show entr-git`

Expected result:

name: entr-git
version: 4.5-0.6b13a97
outputs: out
systems: x86_64-linux i686-linux
dependencies: ncurses@6.2
location: gnu/packages/entr-git.scm:25:2
homepage: http://entrproject.org/
license: ISC
synopsis: Run arbitrary commands when files change  
description: entr is a zero-configuration tool with no external build
or run-time dependencies.  The interface to entr is not only minimal,
it aims to be simple enough to create a new
+ category of ad hoc automation.  These micro-tests reduce keystrokes,
but more importantly they emphasize the utility of automated checks.

Actual result:

guix show: error: entr-git: package not found

Additional information:

`type guix`:
/usr/local/bin/guix

`readlink /usr/local/bin/guix`
/var/guix/profiles/per-user/root/current-guix/bin/guix

`/usr/local/bin/guix show entr-git`
guix show: error: entr-git: package not found

`/var/guix/profiles/per-user/root/current-guix/bin/guix show entr-git`
name: entr-git
version: 4.5-0.6b13a97
outputs: out
systems: x86_64-linux i686-linux
dependencies: ncurses@6.2
location: gnu/packages/entr-git.scm:25:2
homepage: http://entrproject.org/
license: ISC
synopsis: Run arbitrary commands when files change  
description: entr is a zero-configuration tool with no external build
or run-time dependencies.  The interface to entr is not only minimal,
it aims to be simple enough to create a new
+ category of ad hoc automation.  These micro-tests reduce keystrokes,
but more importantly they emphasize the utility of automated checks.

Simplest reproduction of issue:

* Ubuntu 20.04 AMD64 Desktop/Server system.
* Install Guix using guix-install.sh script.
* As a user, ensure absence of ~/.config/guix/current symlink.
* As a user, run `guix pull --fallback`
* As a user, run `guix describe`.
* As a user, run `sudo guix describe`.
* As root, run `guix describe`.

Workaround:

Use `/var/guix/profiles/per-user/root/current-guix/bin/guix` "directly"
(despite this also being a symlink).


I hope this is enough relevant information, otherwise it appears very
straight forward to reproduce.

Sincerely,
Steffen Rytter Postas





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#42810: Guix doesn't follow all symlinks
  2020-08-11 13:54 bug#42810: Guix doesn't follow all symlinks Steffen Rytter Postas via Bug reports for GNU Guix
@ 2020-09-15 23:02 ` zimoun
  2020-09-16  6:45   ` Steffen Rytter Postas via Bug reports for GNU Guix
  2021-07-05  9:35 ` zimoun
  1 sibling, 1 reply; 9+ messages in thread
From: zimoun @ 2020-09-15 23:02 UTC (permalink / raw)
  To: Steffen Rytter Postas; +Cc: 42810

Dear,

On Tue, 11 Aug 2020 at 15:54, Steffen Rytter Postas <nc@scalehost.eu> wrote:
> Hi,
>
> Some background first, to better understand the issue:
> I've been running Guix on a foreign distribution
> with my own channel in ~/.config/guix/channels.scm for some time now. 
> However this means having to deal with doing both a `guix pull` as
>  a user, but also `guix pull` as superuser to keep the system
> builder daemon etc up to date.
> I wanted to avoid this, by using simply a system-wide guix install, and
> not have my own user have a guix variant. I tried simply deleting
> ~/.config/guix/current symlink, and confirmed that `guix` was now using
> the `/usr/local/bin/guix` symlink.
> Then I moved my ~/.config/guix/channels.scm file to
> /etc/guix/channels.scm
> and satisfied with my setup, performed `sudo guix pull --fallback` to
> pull the latest changes and verify it worked.
> The command ran as expected, and printed the new packages from my
> channel that were now available.

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. :-)


> `type guix`:
> /usr/local/bin/guix
>
> `readlink /usr/local/bin/guix`
> /var/guix/profiles/per-user/root/current-guix/bin/guix
>
> `/usr/local/bin/guix show entr-git`
> guix show: error: entr-git: package not found
>
> `/var/guix/profiles/per-user/root/current-guix/bin/guix show entr-git`
> name: entr-git
> version: 4.5-0.6b13a97

[...]

So, if I understand correctly, as a regular user, the command ’guix’
points to ’/usr/local/bin/guix’ which points to
’/var/guix/profiles/per-user/root/current-guix/bin/guix’, and this
latter points to ’/gnu/store/…-guix-command’.

I think the issue is that Guix is not only one binary, so ’bin/guix’ is
not enough.

So you need to have also in the correct symlinks with ’lib/{guile,guix}’
and others.

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.


Well, I do not know if it helps.

All the best,
simon







^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#42810: Guix doesn't follow all symlinks
  2020-09-15 23:02 ` zimoun
@ 2020-09-16  6:45   ` Steffen Rytter Postas via Bug reports for GNU Guix
  2020-09-16  7:26     ` zimoun
  0 siblings, 1 reply; 9+ messages in thread
From: Steffen Rytter Postas via Bug reports for GNU Guix @ 2020-09-16  6:45 UTC (permalink / raw)
  To: zimoun; +Cc: 42810

Hi,

ons, 16 09 2020 kl. 01:02 +0200, skrev zimoun:
> Dear,
> 
> On Tue, 11 Aug 2020 at 15:54, Steffen Rytter Postas <nc@scalehost.eu>
> wrote:
> > Hi,
> > 
> > Some background first, to better understand the issue:
> > I've been running Guix on a foreign distribution
> > with my own channel in ~/.config/guix/channels.scm for some time
> > now. 
> > However this means having to deal with doing both a `guix pull` as
> >  a user, but also `guix pull` as superuser to keep the system
> > builder daemon etc up to date.
> > I wanted to avoid this, by using simply a system-wide guix install,
> > and
> > not have my own user have a guix variant. I tried simply deleting
> > ~/.config/guix/current symlink, and confirmed that `guix` was now
> > using
> > the `/usr/local/bin/guix` symlink.
> > Then I moved my ~/.config/guix/channels.scm file to
> > /etc/guix/channels.scm
> > and satisfied with my setup, performed `sudo guix pull --fallback`
> > to
> > pull the latest changes and verify it worked.
> > The command ran as expected, and printed the new packages from my
> > channel that were now available.
> 
> 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.

> > `type guix`:
> > /usr/local/bin/guix
> > 
> > `readlink /usr/local/bin/guix`
> > /var/guix/profiles/per-user/root/current-guix/bin/guix
> > 
> > `/usr/local/bin/guix show entr-git`
> > guix show: error: entr-git: package not found
> > 
> > `/var/guix/profiles/per-user/root/current-guix/bin/guix show entr-
> > git`
> > name: entr-git
> > version: 4.5-0.6b13a97
> 
> [...]
> 
> So, if I understand correctly, as a regular user, the command ’guix’
> points to ’/usr/local/bin/guix’ which points to
> ’/var/guix/profiles/per-user/root/current-guix/bin/guix’, and this
> latter points to ’/gnu/store/…-guix-command’.
> 
> I think the issue is that Guix is not only one binary, so ’bin/guix’
> is
> not enough.
> 
> 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 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).

> 
> Well, I do not know if it helps.
> 
> All the best,
> simon
> 
> 
> 





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#42810: Guix doesn't follow all symlinks
  2020-09-16  6:45   ` Steffen Rytter Postas via Bug reports for GNU Guix
@ 2020-09-16  7:26     ` zimoun
  2020-09-16  7:35       ` Steffen Rytter Postas via Bug reports for GNU Guix
  0 siblings, 1 reply; 9+ messages in thread
From: zimoun @ 2020-09-16  7:26 UTC (permalink / raw)
  To: Steffen Rytter Postas; +Cc: 42810

Dear,

On Wed, 16 Sep 2020 at 08:45, Steffen Rytter Postas <nc@scalehost.eu> 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




^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#42810: Guix doesn't follow all symlinks
  2020-09-16  7:26     ` zimoun
@ 2020-09-16  7:35       ` Steffen Rytter Postas via Bug reports for GNU Guix
  2020-09-16  9:33         ` zimoun
  0 siblings, 1 reply; 9+ messages in thread
From: Steffen Rytter Postas via Bug reports for GNU Guix @ 2020-09-16  7:35 UTC (permalink / raw)
  To: zimoun; +Cc: 42810

Hi,

ons, 16 09 2020 kl. 09:26 +0200, skrev zimoun:
> Dear,
> 
> On Wed, 16 Sep 2020 at 08:45, Steffen Rytter Postas <nc@scalehost.eu>
> 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.
> 

This may well be the point of Guix, and maybe I'm' following too much
of a classical paradigm, but for me on a classical Linux desktop
system, it is much easier for me to just use _one_ version of Guix,
regardless of using it as my own user, or installing applications as
root.

I'm not sure why this should _not_ work. What is the arguments against
my use case? Is it that each user _MUST_ run `guix pull` as their own
user and _NEVER_ use the system-wide Guix with local channels?

> 
> > > 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 do not mind being able to by-pass any setup I've made. This is for my
own system(s) only, but the issue happens on any non-GuixSD system
running Guix on a foreign distribution.

I am aware there may be workarounds, and currently I'm using the
workaround as specified in the bug report, but if this is _NOT_ a bug,
then I shall continue to use my workaround.

It does seem to me that this is indeed a bug, as Guix behaves
differently based upon who is executing it.

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





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#42810: Guix doesn't follow all symlinks
  2020-09-16  7:35       ` Steffen Rytter Postas via Bug reports for GNU Guix
@ 2020-09-16  9:33         ` zimoun
  2020-09-16 10:24           ` Steffen Rytter Postas via Bug reports for GNU Guix
  0 siblings, 1 reply; 9+ messages in thread
From: zimoun @ 2020-09-16  9:33 UTC (permalink / raw)
  To: Steffen Rytter Postas; +Cc: 42810

Dear,

On Wed, 16 Sep 2020 at 09:35, Steffen Rytter Postas <nc@scalehost.eu> wrote:

> This may well be the point of Guix, and maybe I'm' following too much
> of a classical paradigm, but for me on a classical Linux desktop
> system, it is much easier for me to just use _one_ version of Guix,
> regardless of using it as my own user, or installing applications as
> root.

You are using Guix on foreign distro, right?
Therefore, the concept of "installing applications as root" does not
apply any more.
There is _one_ version of Guix, the one you use as regular user.
And as said before, "sudo guix pull" just updates the daemon and for
typical use-cases (not Guix developer), you can do that only each full
moon. :-)


> I'm not sure why this should _not_ work. What is the arguments against
> my use case? Is it that each user _MUST_ run `guix pull` as their own
> user and _NEVER_ use the system-wide Guix with local channels?

There is no argument against.  You use case should work, you just need
to set up correctly, with for example:

   sudo guix pull -p /usr/

But it is not standard for Guix.  That's why you need a bit of more work.


Otherwise, yes each user runs "guix pull" as their own user and never
uses the system-wide Guix.
Each user specifies their own local channels.  If the sysadmin wants
that each user pulls with a specific channels file, the easiest is to
add a symlink from ~/.config/guix/current/channels.scm to say
/etc/guix/channels.scm for all the users on the machine.

On the machine, 2 users can run different Guix and so install
different versions of the same packages.  That's why it is important
to report the "guix describe" of the user.


> I do not mind being able to by-pass any setup I've made. This is for my
> own system(s) only, but the issue happens on any non-GuixSD system
> running Guix on a foreign distribution.

I am not sure there is an issue but an incorrect setup. :-)


> I am aware there may be workarounds, and currently I'm using the
> workaround as specified in the bug report, but if this is _NOT_ a bug,
> then I shall continue to use my workaround.

I am not convinced it is a bug.  But I can have wrong and miss something.


> It does seem to me that this is indeed a bug, as Guix behaves
> differently based upon who is executing it.

Yes, it is expected.

For example, I am running Guix on a Debian.
There is:
 - the system-wide Guix version at version f6dfe42 (4 "guix pull" and
last on Sep 15 2020 01:42:11)
 - user kioo at the version 1a9af96 (1 "guix pull" and last on Apr 18
2020 20:13:23)
 - mine at the version 9e7b265 (44 "guix pull" and last on Sep 16 2020 11:28:36)

Well, the sysadmin did "guix pull" 4 times and me I did 44 times, so
clearly the command 'guix' behaves differently based upon who is
executing it.

For example, if the user kikoo run "guix install emacs" then they will
install the version 26.3. and me instead wll install version 27.1,

If I want to install the same version as the user kikoo, I can do:

  guix pull --commit=1a9af96
  guix install emacs

or better:

  guix time-machine --commit=1a9af96 -- install emacs

The first will create another generation and my version of Guix will
be at 1a9af96.  Which is not a good Guix practise, IMHO.
Instead, the second creates a temporary version of Guix and use it to
install the package emacs; without polluting my version of guix.


Does it make sense?

All the best,
simon




^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#42810: Guix doesn't follow all symlinks
  2020-09-16  9:33         ` zimoun
@ 2020-09-16 10:24           ` Steffen Rytter Postas via Bug reports for GNU Guix
  2020-09-16 11:01             ` zimoun
  0 siblings, 1 reply; 9+ messages in thread
From: Steffen Rytter Postas via Bug reports for GNU Guix @ 2020-09-16 10:24 UTC (permalink / raw)
  To: zimoun; +Cc: 42810

Hi,

ons, 16 09 2020 kl. 11:33 +0200, skrev zimoun:
> Dear,
> 
> On Wed, 16 Sep 2020 at 09:35, Steffen Rytter Postas <nc@scalehost.eu>
> wrote:
> 
> > This may well be the point of Guix, and maybe I'm' following too
> > much
> > of a classical paradigm, but for me on a classical Linux desktop
> > system, it is much easier for me to just use _one_ version of Guix,
> > regardless of using it as my own user, or installing applications
> > as
> > root.
> 
> You are using Guix on foreign distro, right?
> Therefore, the concept of "installing applications as root" does not
> apply any more.
> There is _one_ version of Guix, the one you use as regular user.
> And as said before, "sudo guix pull" just updates the daemon and for
> typical use-cases (not Guix developer), you can do that only each
> full
> moon. :-)
> 

Why does the concept of installing applications as root not apply?
While I am aware that all applications are installed in the /gnu/store,
this does not imply that there are different application needs between
the root user and a normal user.

> 
> > I'm not sure why this should _not_ work. What is the arguments
> > against
> > my use case? Is it that each user _MUST_ run `guix pull` as their
> > own
> > user and _NEVER_ use the system-wide Guix with local channels?
> 
> There is no argument against.  You use case should work, you just
> need
> to set up correctly, with for example:
> 
>    sudo guix pull -p /usr/
> 
> But it is not standard for Guix.  That's why you need a bit of more
> work.
> 
> 
> Otherwise, yes each user runs "guix pull" as their own user and never
> uses the system-wide Guix.
> Each user specifies their own local channels.  If the sysadmin wants
> that each user pulls with a specific channels file, the easiest is to
> add a symlink from ~/.config/guix/current/channels.scm to say
> /etc/guix/channels.scm for all the users on the machine.
> 
> On the machine, 2 users can run different Guix and so install
> different versions of the same packages.  That's why it is important
> to report the "guix describe" of the user.
> 

So rather than being a bug in Guix itself, it's a bug in the
installation script that does not setup the host distribution for being
able to process the correct location then, no?

Or if it's because the user of Guix on a foreign distribution needs to
setup more for the use case of adding channels to work, when running
only one version of guix on the system, then it would be missing
documentation.

While I don't have a say in this, I also do not mind changing this from
a bug of guix to an issue somewhere else, but where would it be? Or is
the casual user of guix that elects to simply add a channel simply left
to their own devices on undocumented behaviour?

> 
> > I do not mind being able to by-pass any setup I've made. This is
> > for my
> > own system(s) only, but the issue happens on any non-GuixSD system
> > running Guix on a foreign distribution.
> 
> I am not sure there is an issue but an incorrect setup. :-)
> 
> 
> > I am aware there may be workarounds, and currently I'm using the
> > workaround as specified in the bug report, but if this is _NOT_ a
> > bug,
> > then I shall continue to use my workaround.
> 
> I am not convinced it is a bug.  But I can have wrong and miss
> something.
> 
> 
> > It does seem to me that this is indeed a bug, as Guix behaves
> > differently based upon who is executing it.
> 
> Yes, it is expected.
> 
> For example, I am running Guix on a Debian.
> There is:
>  - the system-wide Guix version at version f6dfe42 (4 "guix pull" and
> last on Sep 15 2020 01:42:11)
>  - user kioo at the version 1a9af96 (1 "guix pull" and last on Apr 18
> 2020 20:13:23)
>  - mine at the version 9e7b265 (44 "guix pull" and last on Sep 16
> 2020 11:28:36)
> 
> Well, the sysadmin did "guix pull" 4 times and me I did 44 times, so
> clearly the command 'guix' behaves differently based upon who is
> executing it.
> 
> For example, if the user kikoo run "guix install emacs" then they
> will
> install the version 26.3. and me instead wll install version 27.1,
> 
> If I want to install the same version as the user kikoo, I can do:
> 
>   guix pull --commit=1a9af96
>   guix install emacs
> 
> or better:
> 
>   guix time-machine --commit=1a9af96 -- install emacs
> 
> The first will create another generation and my version of Guix will
> be at 1a9af96.  Which is not a good Guix practise, IMHO.
> Instead, the second creates a temporary version of Guix and use it to
> install the package emacs; without polluting my version of guix.
> 
> 
> Does it make sense?
> 
> All the best,
> simon
> 





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#42810: Guix doesn't follow all symlinks
  2020-09-16 10:24           ` Steffen Rytter Postas via Bug reports for GNU Guix
@ 2020-09-16 11:01             ` zimoun
  0 siblings, 0 replies; 9+ messages in thread
From: zimoun @ 2020-09-16 11:01 UTC (permalink / raw)
  To: Steffen Rytter Postas; +Cc: 42810

Dear,

On Wed, 16 Sep 2020 at 12:24, Steffen Rytter Postas <nc@scalehost.eu> wrote:

> Why does the concept of installing applications as root not apply?

Because one of the Guix aims is to be "root-less".  Each user is doing
whatever they wants in their $HOME directory.
On foreign distro, the only role of the sysadmin (root) is to update the daemon.

> While I am aware that all applications are installed in the /gnu/store,
> this does not imply that there are different application needs between
> the root user and a normal user.

I am not sure to understand what it means.


> So rather than being a bug in Guix itself, it's a bug in the
> installation script that does not setup the host distribution for being
> able to process the correct location then, no?

What do you mean by "correct location"?

You could be interested by these tutorial videos:

   < https://guix.gnu.org/videos/>


> Or if it's because the user of Guix on a foreign distribution needs to
> setup more for the use case of adding channels to work, when running
> only one version of guix on the system, then it would be missing
> documentation.

I am sorry, I do not understand what you mean.

> While I don't have a say in this, I also do not mind changing this from
> a bug of guix to an issue somewhere else, but where would it be? Or is
> the casual user of guix that elects to simply add a channel simply left
> to their own devices on undocumented behaviour?

Again, I am sorry too because I miss what you mean.


Maybe you could send your comments on the mailing list
<help-guix@gnu.org> and others will have better wordings than mine.
:-)

All the best,
simon




^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#42810: Guix doesn't follow all symlinks
  2020-08-11 13:54 bug#42810: Guix doesn't follow all symlinks Steffen Rytter Postas via Bug reports for GNU Guix
  2020-09-15 23:02 ` zimoun
@ 2021-07-05  9:35 ` zimoun
  1 sibling, 0 replies; 9+ messages in thread
From: zimoun @ 2021-07-05  9:35 UTC (permalink / raw)
  To: Steffen Rytter Postas; +Cc: 42810-done


Hi,

Thanks for your report.

On Tue, 11 Aug 2020 at 15:54, Steffen Rytter Postas <nc@scalehost.eu> wrote:

> Some background first, to better understand the issue:
> I've been running Guix on a foreign distribution
> with my own channel in ~/.config/guix/channels.scm for some time now.
> However this means having to deal with doing both a `guix pull` as
>  a user, but also `guix pull` as superuser to keep the system
> builder daemon etc up to date.
> I wanted to avoid this, by using simply a system-wide guix install, and
> not have my own user have a guix variant. I tried simply deleting
> ~/.config/guix/current symlink, and confirmed that `guix` was now using
> the `/usr/local/bin/guix` symlink.
> Then I moved my ~/.config/guix/channels.scm file to
> /etc/guix/channels.scm
> and satisfied with my setup, performed `sudo guix pull --fallback` to
> pull the latest changes and verify it worked.
> The command ran as expected, and printed the new packages from my
> channel that were now available.
>
> So, that's the background of what I've been trying to do. Here's what
> happened:
>
> I have in my own channel a package called `entr-git`. Installing it is
> simple:
>
> `guix show entr-git`
>
> Expected result:
>
> name: entr-git
> version: 4.5-0.6b13a97
> outputs: out
> systems: x86_64-linux i686-linux
> dependencies: ncurses@6.2
> location: gnu/packages/entr-git.scm:25:2
> homepage: http://entrproject.org/
> license: ISC
> synopsis: Run arbitrary commands when files change
> description: entr is a zero-configuration tool with no external build
> or run-time dependencies.  The interface to entr is not only minimal,
> it aims to be simple enough to create a new
> + category of ad hoc automation.  These micro-tests reduce keystrokes,
> but more importantly they emphasize the utility of automated checks.
>
> Actual result:
>
> guix show: error: entr-git: package not found
>
> Additional information:
>
> `type guix`:
> /usr/local/bin/guix
>
> `readlink /usr/local/bin/guix`
> /var/guix/profiles/per-user/root/current-guix/bin/guix
>
> `/usr/local/bin/guix show entr-git`
> guix show: error: entr-git: package not found
>
> `/var/guix/profiles/per-user/root/current-guix/bin/guix show entr-git`
> name: entr-git
> version: 4.5-0.6b13a97
> outputs: out
> systems: x86_64-linux i686-linux
> dependencies: ncurses@6.2
> location: gnu/packages/entr-git.scm:25:2
> homepage: http://entrproject.org/
> license: ISC
> synopsis: Run arbitrary commands when files change
> description: entr is a zero-configuration tool with no external build
> or run-time dependencies.  The interface to entr is not only minimal,
> it aims to be simple enough to create a new
> + category of ad hoc automation.  These micro-tests reduce keystrokes,
> but more importantly they emphasize the utility of automated checks.
>
> Simplest reproduction of issue:
>
> * Ubuntu 20.04 AMD64 Desktop/Server system.
> * Install Guix using guix-install.sh script.
> * As a user, ensure absence of ~/.config/guix/current symlink.
> * As a user, run `guix pull --fallback`
> * As a user, run `guix describe`.
> * As a user, run `sudo guix describe`.
> * As root, run `guix describe`.
>
> Workaround:
>
> Use `/var/guix/profiles/per-user/root/current-guix/bin/guix` "directly"
> (despite this also being a symlink).
>
>
> I hope this is enough relevant information, otherwise it appears very
> straight forward to reproduce.

This bug is marked ’moreinfo’ since months and because I do not see how
it is actionable, I am closing.

If I miss something, please reopen it.

All the best,
simon




^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-07-05 10:52 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-11 13:54 bug#42810: Guix doesn't follow all symlinks Steffen Rytter Postas via Bug reports for GNU Guix
2020-09-15 23:02 ` zimoun
2020-09-16  6:45   ` Steffen Rytter Postas via Bug reports for GNU Guix
2020-09-16  7:26     ` zimoun
2020-09-16  7:35       ` Steffen Rytter Postas via Bug reports for GNU Guix
2020-09-16  9:33         ` zimoun
2020-09-16 10:24           ` Steffen Rytter Postas via Bug reports for GNU Guix
2020-09-16 11:01             ` zimoun
2021-07-05  9:35 ` zimoun

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).