"Grafiksel Girişler" hakkında, hangi * DM'yi kullandığınıza bağlı ...
GDM (Gnome 3.18) ile bu var:
/ Etc / gdm / Xsession
#!/bin/sh <= *important*
...
# First read /etc/profile and .profile
test -f /etc/profile && . /etc/profile
test -f "$HOME/.profile" && . "$HOME/.profile"
# Second read /etc/xprofile and .xprofile for X specific setup
test -f /etc/xprofile && . /etc/xprofile
test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
Yani, ~ / .profile / bin / sh kullanarak değil / bin / bash komutunu kullanarak giriş yapılır.
İki dava var
- / bin / sh , / bin / bash ile bağlantılı ancak "POSIX / Bourne" modunda çalışıyor
- / bin / sh olan / bin / çizgi (debian / ubuntu). En hızlı ancak daha az özelliğe sahip (ShellShock desteği;) )
Yani / bin / sh profili ~ / .profile ve ~ / .bash_profile, ~ / .zprofile değil
Bu dosya , yol ve ortam değişkenleri gibi "kabuk agnostik" ayarları için kullanılmalıdır .
YOK giriş-sadece kullanıcı etkileşimi için çalıştırılabilir bir program olabilir ama burada olmalıdır (posta çek, servet, vb ...)
~ /.* rc sadece "etkileşimli" oturumlar içindir (örneğin takma adlar ...)
Etkileşimli oturum açma kabukları için bash ve zsh arasında bir fark vardır
sırayla bash kaynakları .bash_profile, zsh kaynakları sırayla:
- ~ / .Zprofile
- ~ / .Zshrc
- ~ / zlogin (burada ~ / .zshrc ile tanımlanmış takma adlar kullanılabilir. "etkileşimli" + "giriş" kabukları durumunda
~ / .Bash_profile dosyasını yapmanın doğru yolu burada cevaplandı:
.Bashrc ve .bash_profile arasındaki fark
if [ -r ~/.profile ]; then . ~/.profile; fi
case "$-" in *i*) if [ -r ~/.bashrc ]; then . ~/.bashrc; fi;; esac
Testi (ve profil oluşturmayı) etkinleştirmek için bunu kullanabilirsiniz.
~ / .Bash_profile:
#!/bin/bash
# ------------------------------------------------
export _DOT_BASH_PROFILE_0=`date --rfc-3339=ns`
# ------------------------------------------------
if [ -f ~/.profile ] ; then
. ~/.profile
fi
case "$-" in *i*) if [ -r ~/.bashrc ]; then . ~/.bashrc; fi;; esac
# ------------------------------------------------
export _DOT_BASH_PROFILE_1=`date --rfc-3339=ns`
# ------------------------------------------------
~ / .Zprofile:
#!/bin/zsh
# ------------------------------------------------
export _DOT_ZSH_PROFILE_0=`date --rfc-3339=ns`
# ------------------------------------------------
if [ -f ~/.profile ] ; then
. ~/.profile
fi
# no need to source, zsh already handle ~/.zshrc
###case "$-" in *i*) if [ -r ~/.zshrc ]; then . ~/.zshrc; fi;; esac
# ------------------------------------------------
export _DOT_ZSH_PROFILE_1=`date --rfc-3339=ns`
# ------------------------------------------------
sonra test etmek için:
chsh -s /bin/bash
ssh localhost
env
exit
ssh localhost env
ssh -t localhost bash -i -c env
chsh -s /bin/zsh
ssh localhost
env
exit
ssh localhost env
ssh -t localhost bash -i -c env
Bu yüzden RVM / virtualenv ~ / .profile, IMHO içine girmelidir
Ama bu işe yaramaz , bazen ...
Örneğin, virualenvwrapper , yalnızca Xsession'ı çalıştıran kabuk bir "orijinal" bash ise çalışır (BASH_VERSION'ı dışa aktarır)
Bir çizgi sistemindeyseniz, ortam değişkeni ve yol ayarı çalışır, ancak virualenvwrapper işlev tanımı çalışmıyor, çünkü komut dosyası POSIX uyumlu değil.
Komut dosyası herhangi bir hata yapmıyor, ancak herhangi bir "çalışma" tanımı olmadan bitiyor .
Böylece, çevreyi el altında ~ / .profile olarak ayarlayabilirsiniz , yalnızca istemciden doğru python yürütülmesini doğrudan X'ten başlatarak etkinleştirmek için:
export VIRTUAL_ENV="/home/mike/var/virtualenvs/myvirtualenv"
export PATH="$VIRTUAL_ENV/bin:$PATH"
unset PYTHON_HOME
https://gist.github.com/datagrok/2199506
https://www.bountysource.com/issues/9061991-setting-up-your-computer-virtualenvwrapper-linux-all
Ancak virualenvwrapper için iki seçeneğiniz var:
- kaynak o ~ / .bash_profile veya ~ / .zprofile (veya ~ / .zlogin) giriş kabuğu olarak görev gördüğü
- betiği ~ / .bashrc veya ~ / zshrc dosyasına dahil edin
Bu, X istemcilerinin (örneğin emacs), grafik kabuğundan değil, terminal kabuğundan başlatılması gerektiği anlamına gelir!
"Memnun kalamam ..."