宋文武 <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’.