[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

etc/profile from Guix pack is a noop when $GUIX_PROFILE is defined

From: EuAndreh
Subject: etc/profile from Guix pack is a noop when $GUIX_PROFILE is defined
Date: Wed, 16 Dec 2020 14:21:51 -0300

Hi Guix!

In a chat with civodul on IRC the other day we discussed about the
generated etc/profile profile created by the "guix pack" command.  It is
my understanding that it falls just a very tiny bit short on making
tarballs a great application bundle.  This happens because of how
$GUIX_PROFILE is treated on the generated profile.  Here's the output of
an interactive session:

--8<---------------cut here---------------start------------->8---
$ tar xf `guix pack -RR -S /bin=bin -S /etc=etc guile gnutls guile-json`
$ cat 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.

$ source etc/profile
$ GUIX_PROFILE= source etc/profile
--8<---------------cut here---------------end--------------->8---

By using $GUIX_PROFILE and falling back to the /gnu/store/...-profile
path, the environment variables declarations won't work in a case: when
$GUIX_PROFILE is already defined.  In my case, what ended up happening
is that $GUILE_LOAD_PATH wasn't being enriched by the file, and ended up
with a duplicate entry of $HOME/.config/guix/current.  I was able to
achieve the desired behaviour by making $GUIX_PROFILE undefined, but it
felt like a pitfall to me.  I was left with the impression that this
wasn't the desired behaviour.

My previous mental model was that I could take a tarball generated by
"guix pack", source the profile and the binaries would be added to
$PATH.  Now I feel I have to remember this detail: remember to prefix
the "source" command with "GUIX_PROFILE= ", and this should work
regardless of the environment.

Is this the desired behaviour? Am I missing something?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]