GNU bug report logs -
#40872
First installed package on guix system is not instantly usable
Previous Next
To reply to this bug, email your comments to 40872 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#40872
; Package
guix
.
(Sun, 26 Apr 2020 16:03:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Stefan <stefan-guix <at> vodafonemail.de>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Sun, 26 Apr 2020 16:03:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi!
I have a guix system and my user account has no package installed yet. After installing the first package – git-minimal in my case – this message is printed and I get this error when trying to use the new command:
building profile with 1 package...
Hinweis: Vielleicht möchten Sie die nötigen Umgebungsvariablen festlegen, indem Sie dies ausführen:
GUIX_PROFILE="/home/stefan/.guix-profile"
. "$GUIX_PROFILE/etc/profile"
Sie können sie auch mit `guix package --search-paths -p "/home/stefan/.guix-profile"' nachlesen.
stefan <at> guix ~$ git show
-bash: git: Kommando nicht gefunden.
The problem is that without a single package installed there is no user profile-link present:
stefan <at> guix ~$ echo $PATH
/run/setuid-programs:/home/stefan/.config/guix/current/bin:/run/current-system/profile/bin:/run/current-system/profile/sbin
This is of course easily solved by either following the hint or a logout and login:
stefan <at> guix ~$ exit
Abgemeldet
Connection to raspberry closed.
Computer:~ stefan$ ssh stefan <at> raspberry
Last login: Sun Apr 26 13:59:31 2020
stefan <at> guix ~$ echo $PATH
/run/setuid-programs:/home/stefan/.config/guix/current/bin:/home/stefan/.guix-profile/bin:/run/current-system/profile/bin:/run/current-system/profile/sbin
However, this gives a bad first impression to users. Moreover users may think that a logout/login cycle or manually following the hint could be necessary after each package installation. They may get annoyed by this.
Bye
Stefan
Information forwarded
to
bug-guix <at> gnu.org
:
bug#40872
; Package
guix
.
(Tue, 28 Apr 2020 16:13:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 40872 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Stefan <stefan-guix <at> vodafonemail.de> writes:
> Hi!
>
> I have a guix system and my user account has no package installed yet. After installing the first package – git-minimal in my case – this message is printed and I get this error when trying to use the new command:
>
> building profile with 1 package...
> Hinweis: Vielleicht möchten Sie die nötigen Umgebungsvariablen festlegen, indem Sie dies ausführen:
>
> GUIX_PROFILE="/home/stefan/.guix-profile"
> . "$GUIX_PROFILE/etc/profile"
>
> Sie können sie auch mit `guix package --search-paths -p "/home/stefan/.guix-profile"' nachlesen.
>
> stefan <at> guix ~$ git show
> -bash: git: Kommando nicht gefunden.
>
>
> The problem is that without a single package installed there is no user profile-link present:
>
>
> stefan <at> guix ~$ echo $PATH
> /run/setuid-programs:/home/stefan/.config/guix/current/bin:/run/current-system/profile/bin:/run/current-system/profile/sbin
This is odd, as /etc/profile contains a workaround for this exact
problem (notice the else clause):
# Arrange so that ~/.config/guix/current comes first.
for profile in "$HOME/.guix-profile" "$HOME/.config/guix/current"
do
if [ -f "$profile/etc/profile" ]
then
# Load the user profile's settings.
GUIX_PROFILE="$profile" ; \
. "$profile/etc/profile"
else
# At least define this one so that basic things just work
# when the user installs their first package.
export PATH="$profile/bin:$PATH"
fi
done
Can you investigate why this is ineffective on your system?
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#40872
; Package
guix
.
(Tue, 28 Apr 2020 21:01:04 GMT)
Full text and
rfc822 format available.
Message #11 received at 40872 <at> debbugs.gnu.org (full text, mbox):
Hi Marius!
> This is odd, as /etc/profile contains a workaround for this exact
> problem (notice the else clause):
>
> # Arrange so that ~/.config/guix/current comes first.
> for profile in "$HOME/.guix-profile" "$HOME/.config/guix/current"
> do
> if [ -f "$profile/etc/profile" ]
> then
> # Load the user profile's settings.
> GUIX_PROFILE="$profile" ; \
> . "$profile/etc/profile"
> else
> # At least define this one so that basic things just work
> # when the user installs their first package.
> export PATH="$profile/bin:$PATH"
> fi
> done
>
> Can you investigate why this is ineffective on your system?
Previously I had some packages installed, but I rolled-back to generation 0. I found this in my scroll-back buffer:
stefan <at> guix ~/development/guix$ guix package --roll-back
Folgende Ableitung wird erstellt:
/gnu/store/l0n6l104ldj7nz6kdyi7l8v5yjnc9p9g-profile.drv
building profile with 0 packages...
Von Generation „1“ zu „0“ gewechselt
By rolling back it created a new generation 0 profile which is now lying around with this kind of empty file:
stefan <at> guix ~$ cat .guix-profile/etc/profile
# Source this file to define all the relevant environment variables in Bash
# for this profile. You may want to define the 'GUIX_PROFILE' environment
# variable to point to the "visible" name of the profile, like this:
#
# GUIX_PROFILE=/path/to/profile ; \
# source /path/to/profile/etc/profile
#
# When GUIX_PROFILE is undefined, the various environment variables refer
# to this specific profile generation.
So the test for the existence of this file does not fail, but it doesn't change PATH either. This is the profile content, it has no bin/ folder to add to PATH:
stefan <at> guix ~$ ls -lA /gnu/store/yyxqc1rhz2i062xq8lbfrhhmiyf6pzvp-profile
insgesamt 12
dr-xr-xr-x 2 root root 4096 1. Jan 1970 etc/
-r--r--r-- 4 root root 37 1. Jan 1970 manifest
Bye
Stefan
Information forwarded
to
bug-guix <at> gnu.org
:
bug#40872
; Package
guix
.
(Sat, 02 May 2020 14:21:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 40872 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Stefan <stefan-guix <at> vodafonemail.de> writes:
> Hi Marius!
>
>> This is odd, as /etc/profile contains a workaround for this exact
>> problem (notice the else clause):
>>
>> # Arrange so that ~/.config/guix/current comes first.
>> for profile in "$HOME/.guix-profile" "$HOME/.config/guix/current"
>> do
>> if [ -f "$profile/etc/profile" ]
>> then
>> # Load the user profile's settings.
>> GUIX_PROFILE="$profile" ; \
>> . "$profile/etc/profile"
>> else
>> # At least define this one so that basic things just work
>> # when the user installs their first package.
>> export PATH="$profile/bin:$PATH"
>> fi
>> done
>>
>> Can you investigate why this is ineffective on your system?
>
> Previously I had some packages installed, but I rolled-back to generation 0. I found this in my scroll-back buffer:
>
> stefan <at> guix ~/development/guix$ guix package --roll-back
> Folgende Ableitung wird erstellt:
> /gnu/store/l0n6l104ldj7nz6kdyi7l8v5yjnc9p9g-profile.drv
> building profile with 0 packages...
> Von Generation „1“ zu „0“ gewechselt
>
> By rolling back it created a new generation 0 profile which is now lying around with this kind of empty file:
>
> stefan <at> guix ~$ cat .guix-profile/etc/profile
> # Source this file to define all the relevant environment variables in Bash
> # for this profile. You may want to define the 'GUIX_PROFILE' environment
> # variable to point to the "visible" name of the profile, like this:
> #
> # GUIX_PROFILE=/path/to/profile ; \
> # source /path/to/profile/etc/profile
> #
> # When GUIX_PROFILE is undefined, the various environment variables refer
> # to this specific profile generation.
>
> So the test for the existence of this file does not fail, but it doesn't change PATH either. This is the profile content, it has no bin/ folder to add to PATH:
I see. We could extend the test in /etc/profile to look for a /bin
directory of the profile, but arguably rolling back to generation 0 is
not a very common case. So I'm in favor of just keeping the status quo.
WDYT?
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#40872
; Package
guix
.
(Sat, 02 May 2020 17:00:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 40872 <at> debbugs.gnu.org (full text, mbox):
* gnu/system.scm (operating-system-etc-service): Testing for $profile/bin.
Fixes <https://debbugs.gnu.org/40872>.
---
gnu/system.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gnu/system.scm b/gnu/system.scm
index 540f0e4a9e..0eb5731c82 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -725,7 +725,8 @@ do
# Load the user profile's settings.
GUIX_PROFILE=\"$profile\" ; \\
. \"$profile/etc/profile\"
- else
+ fi
+ if [ ! -d \"$profile/bin\" ]
# At least define this one so that basic things just work
# when the user installs their first package.
export PATH=\"$profile/bin:$PATH\"
--
2.26.0
Information forwarded
to
bug-guix <at> gnu.org
:
bug#40872
; Package
guix
.
(Sun, 03 May 2020 23:33:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 40872 <at> debbugs.gnu.org (full text, mbox):
Hi Marius!
> Am 02.05.2020 um 16:20 schrieb Marius Bakke <mbakke <at> fastmail.com>:
>
> We could extend the test in /etc/profile to look for a /bin
> directory of the profile
I think this is the right solution, as that’s the actual aim of the else-part: Provide a path to a bin directory if the profile doesn’t do this by itself – there is just the implicit (but wrong) assumption that it would, if the profile is existing. I sent a patch, probably you saw it already.
Bye
Stefan
Information forwarded
to
bug-guix <at> gnu.org
:
bug#40872
; Package
guix
.
(Sat, 09 May 2020 22:52:01 GMT)
Full text and
rfc822 format available.
Message #23 received at 40872 <at> debbugs.gnu.org (full text, mbox):
Hi!
> Am 02.05.2020 um 18:59 schrieb Stefan <stefan-guix <at> vodafonemail.de>:
>
> * gnu/system.scm (operating-system-etc-service): Testing for $profile/bin.
>
> Fixes <https://debbugs.gnu.org/40872>.
> ---
> gnu/system.scm | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/system.scm b/gnu/system.scm
> index 540f0e4a9e..0eb5731c82 100644
> --- a/gnu/system.scm
> +++ b/gnu/system.scm
> @@ -725,7 +725,8 @@ do
> # Load the user profile's settings.
> GUIX_PROFILE=\"$profile\" ; \\
> . \"$profile/etc/profile\"
> - else
> + fi
> + if [ ! -d \"$profile/bin\" ]
I just realised that I missed the necessary
then
between these lines.
> # At least define this one so that basic things just work
> # when the user installs their first package.
> export PATH=\"$profile/bin:$PATH\"
> --
> 2.26.0
>
Bye
Stefan
This bug report was last modified 4 years and 228 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.