宋文武 <iyzs...@gmail.com> skribis:

> How about using a shell variable as input for the location:
> (replace /gnu/store/xxx with $GUIX_PROFILE)
>
>   # etc/profile
>   export PATH=$GUIX_PROFILE/bin:$PATH
>   export MANPATH=$GUIX_PROFILE/share/man:$MANPATH
>   ...
>
> Then when 'source' it, we pass the location:
> (we did know where $GUIX_PROFILE is when do the 'source')
>
>   # ~/.bash_profile
>   GUIX_PROFILE=$HOME/.guix-profile
>   if [ -f $GUIX_PROFILE/etc/profile ]; then
>     . $GUIX_PROFILE/etc/profile
>   fi
>
>   # /etc/profile
>   GUIX_PROFILE=/run/current-system/profile
>   source $GUIX_PROFILE/etc/profile

I ended up doing that in d664f1b.  Please check d664f1b and d995942 and
report and issues/bugs.

Part of the initial problem you reported had to do with combining
profiles (perl in one profile, perl-xml-parser in another.)  This part
is not addressed yet, and it turns out to be more common than I
initially thought: consider for instance MANPATH (with man-db installed
in the system profile and man pages in the user’s profile.)

Unfortunately the etc/profile files are not going to allow us to solve
that.  ‘guix package --search-paths’ could do the actual combination,
though.

Thanks,
Ludo’.



Reply via email to