宋文武 <[email protected]> skribis:
> Ludovic Courtès <[email protected]> writes:
>
>> 宋文武 <[email protected]> skribis:
[...]
>>> IMO, we should use `/etc/environment' for system variables:
>>> LANG=en_US.UTF-8
>>> PATH=/run/current-system/profile/bin:/run/setuid-programs
>>> And add `pam_env.so' to /etc/pam.d/login, to make tty login work.
>>>
>>> With `/etc/profile', `/etc/zlogin' just:
>>> source /etc/environment
>>> to make `bash -l' and `zsh -l' work.
>>
>> Is ‘pam env’ needed at all if /etc/profile and /etc/zlogin are provided
>> anyway?
> Yes, it's redundant.
> Now I think the better way is just provide /etc/environment.
> then `bash -l' would take ~/.bash_profile and ~/.profile.
> We can have a default ~/.bash_profile like:
> source /etc/environment
> export PATH=$PATH:$HOME/.guix-profile/bin
Currently, the .bashrc skeleton sources /etc/profile.
So, instead of what you suggest, what about having:
1. /etc/profile and /etc/zlogin (?) both source /etc/environment,
which uses plain Bourne syntax.
2. PATH is defined in /etc/environment and includes
~/.guix-profile/bin.
3. The skeleton for ~/.bash_profile sources /etc/profile, /etc/bashrc,
and ~/.bashrc.
4. The definition of PS1 is moved from /etc/profile to /etc/bashrc.
5. The skeleton for ~/.bashrc sources /etc/bashrc.
?
(I was reading the Bash manual to make sure (info "(bash) Bash Startup
Files"), and as an exercise, I’ve cleaned up my own ~/.bashrc and
~/.bash_profile accordingly, which fixes the issue I reported a couple
of weeks ago regarding ‘guix environment’.)
Thanks,
Ludo’.