[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#20255: 'search-paths' should respect both user and system profile.
From: |
宋文武 |
Subject: |
bug#20255: 'search-paths' should respect both user and system profile. |
Date: |
Sun, 05 Apr 2015 11:39:03 +0800 |
User-agent: |
Notmuch/0.18.1 (http://notmuchmail.org) Emacs/24.4.1 (x86_64-unknown-linux-gnu) |
Ludovic Courtès <address@hidden> writes:
> 宋文武 <address@hidden> skribis:
>
>> Currently, search-paths built only from packages in user's profile.
>> As reported by Andy Wingo in #guix, when I have:
>> perl installed into system profile
>> perl-xml-parser installed into user profile
>>
>> guix package --search-paths won't give a hint about PERL5LIB,
>> so it's very likely end up with a broken XML::Parser.
>
> Rather it ends up with no XML::Parser, no?
>
> That said, I’m not sure how this could be improved. We could hard-code
> lookup in /run/current-system/profile/. OTOH that’s not different from
> installing perl in one profile, and perl-xml-parser in another
> (arbitrary) profile, which ‘guix package’ cannot be aware of.
>
> WDYT?
As 'guix package' is for only one profile, that's fine.
Since we can get search-paths from system profile using:
guix package -p /run/current-system/profile --search-paths
I think the missing is to check whether we are under GuixSD,
and then merge those 2 search-paths object in scheme level
to get a full search-paths.
Or better to generate a 'profile' script for each manifest, and then
merged in shell level, so it can work out-of-the-box. How about:
- /etc/profile:
# configuration for the whole system goes here.
# shouldn't refer profile paths.
export LANG=en_US.utf8
export SSL_CERT_DIR=/etc/ssl/certs
export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules
[...]
source /run/current-system/profile/etc/profile
if [ -f $HOME/.guix-profile/etc/profile ]; then
source $HOME/.guix-profile/etc/profile
fi
# honor setuid-programs
export PATH=/run/setuid-programs:$PATH
- /run/current-system/profile/etc/profile:
export
PATH=/run/current-system/profile/bin:/run/current-system/profile/sbin:$PATH
export MANPATH=/run/current-system/profile/share/man:$PATH
[...]
- ~/.guix-profile/etc/profile:
export PATH=~/.guix-profile/bin:~/.guix-profile/sbin:$PATH
[...]
The idea to generate profile from search-paths is not new,
I heard it from you IIRC.
I think it's the time to do it.