宋文武 <iyzs...@gmail.com> skribis: > Ludovic Courtès <l...@gnu.org> writes: > >> 宋文武 <iyzs...@gmail.com> 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’.