2012-03-04 16 views
5

मैं शेर का उपयोग कर रहा हूं। मैं एक त्रुटि है कि हर नए टर्मिनल सत्र पर आउटपुट है:मैं हर नए टर्मिनल सत्र पर चल रहे किसी चीज़ से कैसे छुटकारा पा सकता हूं?

-bash: __rvm_add_to_path: command not found 

यह लगभग एक ब्रांड के नए उपयोगकर्ता खाते .. RVM मशीन पर अन्य खाते पर स्थापित किया गया है है .. ~/.bashrc & ~/.bash_profile हैं दोनों खाली .. बाहर env की डाल है:

TERM_PROGRAM=Apple_Terminal 
SHELL=/bin/bash 
TERM=xterm-256color 
TMPDIR=/var/folders/ry/8zsyknmx7dj4_2zzvn1n71500000gn/T/ 
Apple_PubSub_Socket_Render=/tmp/launch-jsfKPw/Render 
TERM_PROGRAM_VERSION=303 
TERM_SESSION_ID=3EBC0F1A-9867-41E5-8873-75E84B9F712F 
USER=incorvia 
COMMAND_MODE=unix2003 
SSH_AUTH_SOCK=/tmp/launch-ZQqgPj/Listeners 
Apple_Ubiquity_Message=/tmp/launch-u3d1lp/Apple_Ubiquity_Message 
__CF_USER_TEXT_ENCODING=0x1F5:0:0 
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin 
PWD=/bin 
LANG=en_US.UTF-8 
HOME=/Users/incorvia 
SHLVL=1 
LOGNAME=incorvia 
DISPLAY=/tmp/launch-0B0I8s/org.x:0 
_=/usr/bin/env 

मैं यहाँ RVM से संबंधित कुछ भी नहीं देख .. और कहाँ मैं देख सकते हैं?

=====

/etc/bashrc

# System-wide .bashrc file for interactive bash(1) shells. 
if [ -z "$PS1" ]; then 
    return 
fi 

PS1='\h:\W \u\$ ' 
# Make bash check its window size after a process completes 
shopt -s checkwinsize 
# Tell the terminal about the working directory at each prompt. 
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then 
    update_terminal_cwd() { 
     # Identify the directory using a "file:" scheme URL, 
     # including the host name to disambiguate local vs. 
     # remote connections. Percent-escape spaces. 
     local SEARCH=' ' 
     local REPLACE='%20' 
     local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}" 
     printf '\e]7;%s\a' "$PWD_URL" 
    } 
    PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND" 
fi 

=========

फिक्स्ड ...

के नीचे में मेरी/etc/profile यह सोर्सिंग /etc/profile.d/rvm.sh

नहीं पता कि यह कैसे मिला ...

+0

क्या आपने '/ etc/bashrc' देखा है? – simont

+0

मैंने अपने/etc/bashrc – Inc1982

+0

के आउटपुट को अन्य स्थानों के लिए [यह लिंक] (http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html) जांचें; '/ etc/profile' शायद? उपयोगकर्ता-विशिष्ट की तुलना में यह वैश्विक कॉन्फ़िगरेशन होने की अधिक संभावना है। – simont

उत्तर

11

बैश स्टार्टअप के दौरान फ़ाइलों की एक श्रृंखला लोड करता है। बैश स्टार्टअप प्रक्रिया का एक अच्छा अवलोकन here पाया जा सकता है।

आम तौर पर, वैश्विक सेटिंग्स, /etc/profile, /etc/bashrc, और संबद्ध व्यक्तिगत सेटिंग्स, ~/.profile और ~/.bashrc, लोड किए गए हैं, हालांकि कि थोड़ा वितरण पर निर्भर (और मैक ओएस एक्स पर, उदाहरण के लिए, डिफ़ॉल्ट /etc/profile द्वारा अस्तित्व में नहीं है)।

RVM Installation पृष्ठ से:

मल्टी उपयोगकर्ता:

rvm समारोह स्वचालित रूप से सिस्टम पर प्रत्येक उपयोगकर्ता के लिए विन्यस्त किया जाएगा अगर आप रूट के रूप में स्थापित करें। यह लॉगिन पर /etc/profile.d/rvm.sh लोड करके पूरा किया जाता है। अधिकांश लिनक्स वितरण पार्सिंग/etc/प्रोफ़ाइल में डिफ़ॉल्ट होते हैं जिसमें /etc/profile.d/ निर्देशिका में रहने वाली सभी फ़ाइलों को लोड करने के लिए तर्क शामिल होता है। एक बार जब आप उन उपयोगकर्ताओं को जोड़ देते हैं जिन्हें आप आरवीएम समूह में आरवीएम का उपयोग करने में सक्षम होना चाहते हैं, तो उन उपयोगकर्ताओं को आरवीएम समूह सदस्यता प्राप्त करने के लिए लॉग आउट करना होगा और वापस लेना होगा क्योंकि समूह सदस्यता केवल प्रारंभिक लॉगिन समय पर ऑपरेटिंग सिस्टम द्वारा मूल्यांकन की जाती है।

मुझे लगता है कि अन्य उपयोग Multi-User मोड में स्थापित है; /etc/profile शायद /etc/profile.d/rvm.sh लोड करता है।

को रोकने के लिए यह लोड किए जा रहे हैं, तो आप /etc/profile से source RVM लाइन को दूर कर सकता है - यह हालांकि, बंद हो जाएगा यह सभी उपयोगकर्ताओं के लिए लोड किया जा रहा।

4

खाता है कि एक काम प्रोफ़ाइल था के लिए, मैं निम्नलिखित .rvmrc था:

[email protected]:~# cat .rvmrc 
export rvm_prefix="/usr/local/lib/sc" 
export rvm_path="/usr/local/lib/sc/rvm" 

मेरे अन्य खातों के लिए दूर जाना त्रुटि पाने के लिए, मैं बस अन्य खातों और निश्चित करने के लिए इस फ़ाइल की प्रतिलिपि अनुमतियां (chown johndoe: johndoe /home/johndoe/.rvmrc) ...

1

उबंटू 12.04 में, डिफ़ॉल्ट रूप से, /etc/profile.d/rvm.sh नया टर्मिनल प्रारंभ करते समय लोड नहीं किया जाएगा। इसलिए हर बार, जब एक नया termail शुरू करने, सीएमडी के रूप में निम्नानुसार rvm शुरू करने के लिए इस्तेमाल किया जाना चाहिए:

source /etc/profile.d/rvm.sh 

और यह तय करने के लिए दो तरीके हैं:

  1. एक नया टर्मिनल खोलने सही> क्लिक करें और प्रोफाइल-> प्रोफ़ाइल प्राथमिकताएं-> शीर्षक और कमांड-> चुनें "लॉगिन खोल के रूप में कमांड चलाएं" का चयन करें।

  2. के रूप में इस प्रकार है तो /etc/profile.d/rvm.sh ऑटो एक नया टर्मिनल में लोड किया जाएगा एक नया टर्मिनल खोलने> चलाने cmd:

    गूंज '[[-s "/ etc/profile.d/rvm.sh "]] & &। "/etc/profile.d/rvm.sh" # लोड RVM समारोह '>> ~/.bashrc

कुछ स्पष्टीकरण here कहने के लिए 1 समाधान एक अच्छा एक नहीं है, लेकिन 2 सुझाव दिया जाता है।

तो दूसरी तरह के दौर में, यदि आप नहीं करते टर्मिनल एक नया टर्मिनल में कुछ चलाना चाहते हैं, तो आप जांच करने के लिए स्वत: लोड के दो तरीके से coursed है कि क्या जरूरत है:

  1. है कि क्या जांच "लॉगिन शेल के रूप में कमांड चलाएं" चुना गया है और इसे अचयनित करें।

  2. ~/.bashrc फ़ाइल खोलें, फ़ंक्शन को लोड करने से संबंधित लाइनें ढूंढें और इसे हटा दें।

0

मेरे पास पिछली आरवीएम स्थापना से एक ही फ़ाइल (/etc/profile.d/rvm.sh) थी। उस फ़ाइल को हटाने के लिए भी मेरे लिए काम किया।

पूरी तरह से होने के लिए, खोल से लॉगिंग की आवश्यकता होती है।

0

अपने /etc/profile परिवर्तन में लाइन:

में

source /etc/profile.d/rvm.sh

:

if [ "${SHELL}" != "/bin/sh" ]; then 
    source /etc/profile.d/rvm.sh 
fi 

क्यों?

मैक ओएस एक्स में सुपरसियर का डिफ़ॉल्ट खोल (root) एक पॉसिक्स शैल है, शुद्ध बैश नहीं। ऐसी स्थिति जोड़ने से सिस्टम प्रशासक द्वारा उपयोग किए जाने वाले (संभवतः) emerygency shell /bin/sh के लिए rvm अक्षम हो जाएगा। यह अच्छा है। यदि आप root के खाते का उपयोग करके कुछ इंस्टॉल करना चाहते हैं, तो आप हमेशा कमांड लाइन में bash और rvm … टाइप कर सकते हैं।

0

डेबियन 6.1 सभी .sh फ़ाइलों के लिए /etc/profile.d/ फ़ाइल स्कैन करता है और उन्हें शामिल करता है, इसलिए किसी भी प्रोफ़ाइल या .bashrc फ़ाइलों में कहीं भी आरवीएम के लिए कोई लिस्टिंग नहीं है। /etc/profile.d/ से rvm.sh को हटाने से यह हल हो जाता है।

0

यदि आपके पास ZSH या OH-MY-ZSH है, तो आपको स्रोत /etc/profile.d/rvm को निकालना होगा।/etc/zprofile

संबंधित मुद्दे

 संबंधित मुद्दे