guix install: environment variable message is very confusing

  • Done
  • quality assurance status badge
Details
5 participants
  • Andreas Enge
  • Ludovic Courtès
  • Tobias Geerinckx-Rice
  • Ricardo Wurmus
  • Robert Vollmert
Owner
unassigned
Submitted by
Robert Vollmert
Severity
normal
R
R
Robert Vollmert wrote on 28 May 2019 13:17
(address . bug-guix@gnu.org)
C2469F7E-5E47-408D-A551-344744C31AC0@vllmrt.net
When installing a package that needs an environment variaible to be set for
use, `guix install` prints e.g.:

$ guix install python
...
The following environment variable definitions may be needed:
export PYTHONPATH="/home/rob/.guix-profile/lib/python3.7/site-packages${PYTHONPATH:+:}$PYTHONPATH"

I understand that the variable will be set in a new shell, but not in the current shell.
But as it stands, the message serves to confuse even users that are somewhat experienced
with unix-like systems.

Suggestion to instead print:

Set the following environment variables to use <package> right away:
export PYTHONPATH="/home/rob/.guix-profile/lib/python3.7/site-packages${PYTHONPATH:+:}$PYTHONPATH"
T
T
Tobias Geerinckx-Rice wrote on 28 May 2019 14:08
(address . 35942@debbugs.gnu.org)
871s0ipyr1.fsf@nckx
Robert,

Robert Vollmert wrote:
Toggle quote (5 lines)
> Suggestion to instead print:
>
> Set the following environment variables to use <package> right
> away:

Thanks for the bug report! Related (not duplicate) thread:


Kind regards,

T G-R
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQT12iAyS4c9C3o4dnINsP+IT1VteQUCXO0k0wAKCRANsP+IT1Vt
eaFzAP0QjQ7XlWJeisWRWBzgMBtZsuMVdn8rUzO+0/Ve2fL+ewEA8UAE0QG3oHOE
tjZ9nle/gKHCx7o1HvZccqKu4gHUSgw=
=xrFt
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 28 May 2019 17:23
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)(address . 35942@debbugs.gnu.org)
87sgsyvc0e.fsf@gnu.org
Hi,

Tobias Geerinckx-Rice <me@tobias.gr> skribis:

Toggle quote (9 lines)
> Robert Vollmert wrote:
>> Suggestion to instead print:
>>
>> Set the following environment variables to use <package> right away:
>
> Thanks for the bug report! Related (not duplicate) thread:
>
> <https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00362.html>

I don’t think we reached a conclusion back then. I’m fine with Robert’s
suggestion, but do people think it will really help?

Others were in favor of dropping this message altogether, which I think
wouldn’t be a good idea: how would people discover about search path
handling?

Thoughts?

Ludo’.
R
R
Ricardo Wurmus wrote on 30 May 2019 09:07
(name . Ludovic Courtès)(address . ludo@gnu.org)
871s0gl8st.fsf@elephly.net
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (20 lines)
> Hi,
>
> Tobias Geerinckx-Rice <me@tobias.gr> skribis:
>
>> Robert Vollmert wrote:
>>> Suggestion to instead print:
>>>
>>> Set the following environment variables to use <package> right away:
>>
>> Thanks for the bug report! Related (not duplicate) thread:
>>
>> <https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00362.html>
>
> I don’t think we reached a conclusion back then. I’m fine with Robert’s
> suggestion, but do people think it will really help?
>
> Others were in favor of dropping this message altogether, which I think
> wouldn’t be a good idea: how would people discover about search path
> handling?

I was in favour of *replacing* the message with the suggestion to run

export GUIX_PROFILE=/this/profile
source $GUIX_PROFILE/etc/profile

because it usually does the right thing.

It looks less overwhelming than the individual list of environment
variables. I’ve seen a lot of people who added all of these variables
to their bashrc (or bash_profile if they talked to me before), which is
not what we want to encourage.

We can also hint at “guix package --search-paths” to see a full list of
environment variables for people who want to set them manually right
here and now.

--
Ricardo
A
A
Andreas Enge wrote on 31 May 2019 18:45
(name . Ricardo Wurmus)(address . rekado@elephly.net)
20190531164505.GA2648@jurong
Hello,

On Thu, May 30, 2019 at 09:07:30AM +0200, Ricardo Wurmus wrote:
Toggle quote (5 lines)
> I was in favour of *replacing* the message with the suggestion to run
> export GUIX_PROFILE=/this/profile
> source $GUIX_PROFILE/etc/profile
> because it usually does the right thing.

I think this was the conclusion reached, and am just waiting for Guix to
give me the message to update one of my bash* files :-)

Andreas
L
L
Ludovic Courtès wrote on 31 May 2019 23:19
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87k1e6nwxw.fsf@gnu.org
Hi!

Ricardo Wurmus <rekado@elephly.net> skribis:

Toggle quote (2 lines)
> Ludovic Courtès <ludo@gnu.org> writes:

[...]

Toggle quote (25 lines)
>>
>> I don’t think we reached a conclusion back then. I’m fine with Robert’s
>> suggestion, but do people think it will really help?
>>
>> Others were in favor of dropping this message altogether, which I think
>> wouldn’t be a good idea: how would people discover about search path
>> handling?
>
> I was in favour of *replacing* the message with the suggestion to run
>
> export GUIX_PROFILE=/this/profile
> source $GUIX_PROFILE/etc/profile
>
> because it usually does the right thing.
>
> It looks less overwhelming than the individual list of environment
> variables. I’ve seen a lot of people who added all of these variables
> to their bashrc (or bash_profile if they talked to me before), which is
> not what we want to encourage.
>
> We can also hint at “guix package --search-paths” to see a full list of
> environment variables for people who want to set them manually right
> here and now.

Sounds good to me.

How about the following patch?

It does produce a slightly verbose message, but I don’t think we can do
much better (we could save one line by not mentioning ‘--search-paths’.)

Thanks for getting the ball rolling. :-)

Ludo’.
Toggle diff (56 lines)
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 06e4cf5b9c..5751123525 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -57,7 +57,6 @@
#:export (build-and-use-profile
delete-generations
delete-matching-generations
- display-search-paths
guix-package
(%options . %package-options)
@@ -169,8 +168,7 @@ hooks\" run when building the profile."
"~a packages in profile~%"
count)
count)
- (display-search-paths entries (list profile)
- #:kind 'prefix)))
+ (display-search-path-hint entries profile)))
(warn-about-disk-space profile))))))
@@ -289,17 +287,23 @@ symlinks like 'canonicalize-path' would do."
file
(string-append (getcwd) "/" file)))
-(define* (display-search-paths entries profiles
- #:key (kind 'exact))
- "Display the search path environment variables that may need to be set for
-ENTRIES, a list of manifest entries, in the context of PROFILE."
- (let* ((profiles (map (compose user-friendly-profile absolutize)
- profiles))
- (settings (search-path-environment-variables entries profiles
- #:kind kind)))
+(define (display-search-path-hint entries profile)
+ "Display a hint on how to set environment variables to use ENTRIES, a list
+of manifest entries, in the context of PROFILE."
+ (let* ((profile (user-friendly-profile (absolutize profile)))
+ (settings (search-path-environment-variables entries (list profile)
+ #:kind 'prefix)))
(unless (null? settings)
- (format #t (G_ "The following environment variable definitions may be needed:~%"))
- (format #t "~{ ~a~%~}" settings))))
+ (display-hint (format #f (G_ "Consider setting the necessary environment
+variables by running:
+
+@example
+GUIX_PROFILE=\"~a\"
+. \"$GUIX_PROFILE/etc/profile\"
+@end example
+
+Alternately, see @command{guix package --search-paths -p ~s}.")
+ profile profile)))))
;;;
L
L
Ludovic Courtès wrote on 6 Jun 2019 09:48
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87lfyfrw6j.fsf@gnu.org
Hello,

Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (5 lines)
> How about the following patch?
>
> It does produce a slightly verbose message, but I don’t think we can do
> much better (we could save one line by not mentioning ‘--search-paths’.)

Pushed as bcb7c900cc9d01603fb8fa47bc52caa8e7ebd480.

Feedback welcome!

Thanks,
Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 35942@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 35942
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch