खैर, "ग्राफिकल लॉगिन्स" के बारे में, यह इस बात पर निर्भर करता है कि आप किस * डीएम का उपयोग करते हैं ...
GDM (सूक्ति 3.18) के साथ मेरे पास यह है:
/ 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"
तो, ~ / .profile / बिन / श का उपयोग करके लॉगिन में खट्टा हो जाता है और बिन / बाश नहीं
दो मामले हैं
- / बिन / श / / बिन / बैश से जुड़ा हुआ है, लेकिन "POSIX / बॉर्न" मोड में चलता है
- / bin / श है / bin / पानी का छींटा (Debian / Ubuntu)। सबसे तेज़ लेकिन कम सुविधाओं के साथ (शेलशॉट सपोर्ट;) )
तो / bin / श प्रोफ़ाइल है ~ / .profile और नहीं ~ / .bash_profile, ~ / .zprofile
इस फ़ाइल का उपयोग "शेल एग्नॉस्टिक" सेटिंग्स के लिए किया जाना चाहिए , जैसे पथ और पर्यावरण चर।
लॉगिन-केवल उपयोगकर्ता इंटरैक्शन के लिए कोई निष्पादन योग्य कार्यक्रम होना चाहिए लेकिन यहां (मेल चेक, भाग्य, आदि ...)
~ /.* आरसी केवल "इंटरैक्टिव" सत्र (उदाहरण के लिए उपनाम ...) के लिए हैं
इंटरेक्टिव लॉगइन गोले के लिए बैश और जेडश में अंतर है
बैश स्रोतों को केवल .bash_profile, जबकि zsh स्रोतों को क्रम में:
- ~ / .Zprofile
- ~ / .Zshrc
- ~ / zlogin (यहां ~ / .zshrc में परिभाषित उपनाम उपलब्ध हैं। "इंटरएक्टिव" + "लॉगिन" खंभे के मामले में)
करने का सही तरीका ~ / .bash_profile यहाँ उत्तर दिया गया था:
.Bashrc और .bash_profile के बीच अंतर
if [ -r ~/.profile ]; then . ~/.profile; fi
case "$-" in *i*) if [ -r ~/.bashrc ]; then . ~/.bashrc; fi;; esac
परीक्षण (और प्रोफाइलिंग) को सक्षम करने के लिए, आप इसका उपयोग कर सकते हैं
~ / .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`
# ------------------------------------------------
फिर, परीक्षण करने के लिए:
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
तो RVM / virtualenv ~ / .profile, IMHO में जाना चाहिए
लेकिन यह काम नहीं करता है , कभी-कभी ...
उदाहरण के लिए, virualenvwrapper केवल तभी काम करता है जब Xsession चल रहा शेल एक "मूल" बैश (BASH_VERSION निर्यात कर रहा है)
यदि आप डैश सिस्टम पर हैं, तो पर्यावरण चर और पथ सेटिंग कार्य करते हैं, लेकिन virualenvwrapper फ़ंक्शन परिभाषा काम नहीं करती है क्योंकि स्क्रिप्ट POSIX अनुरूप नहीं है।
स्क्रिप्ट कोई त्रुटि नहीं देती है लेकिन यह बिना किसी "वर्कऑन" परिभाषा के समाप्त हो जाती है ।
तो आप हाथ में पर्यावरण सेट कर सकते हैं ~ /। लाभ , बस ग्राहक से सही अजगर निष्पादन को सक्षम करने के लिए सीधे 1 से शुरू कर दिया:
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
लेकिन virualenvwrapper के लिए आपके पास दो विकल्प हैं:
- इसे स्रोत में ~ / .bash_profile या ~ / .zprofile (या ~ / .zlogin) जब टर्मिनल को शेल के रूप में जाना जाता है
- स्क्रिप्ट को ~ / .bashrc या ~ / zshrc में शामिल करें
इसका मतलब है कि एक्स क्लाइंट (उदाहरण के लिए एमएसीएस) को टर्मिनल शेल से शुरू किया जाना चाहिए न कि ग्राफिकल वन से!
"मुझे कोई संतुष्टि नहीं मिल सकती ..."