2012-03-17 16 views
29

आरवीएम मेरी मशीन (मैक ओएसएक्स 10.6.8 चल रहा है) पर सही है, और यह ठीक है। अजीब चीज यह है कि इसे चलाने के लिए, मुझे हर नए सत्र के लिए source ~/.rvm/scripts/rvm का उपयोग करना होगा। मैंने इसे /opt/local/bin/rvm से एक सिम्लिंक बनाने की कोशिश की, लेकिन जब यह चलता है तो यह कुछ भी नहीं करता है। मैंने ~/.rvm/bin/rvm से /opt/local/bin/rvm से एक सिम्लिंक बनाने का भी प्रयास किया, और जब मैं टर्मिनल में rvm चलाता हूं तो यह अपेक्षित रूप से सहायता पृष्ठ प्रदर्शित करता है। लेकिन जब मैं rvm use some_ruby_version आज़माता हूं तो यह हमेशा प्रदर्शित होता है "आरवीएम एक समारोह नहीं है, 'आरवीएम उपयोग ...' के साथ रूबी का चयन नहीं करेगा।" मैं इसे कैसे ठीक करूं?"आरवीएम एक फंक्शन नहीं है" त्रुटि

मेरा लक्ष्य इस बिंदु पर पहुंचना है कि को हर सत्र में स्रोत कमांड टाइप करना होगा, और किसी कारण से ~/.profile निष्पादित नहीं होता है।

+2

आप '~/.bash_profile' करने के लिए आवश्यक लाइनों को जोड़ने की कोशिश की है? मेरे मैक पर कम से कम वह है जिसे मुझे अपने बैश में पथ/फ़ंक्शन जोड़ते समय संपादित करने की आवश्यकता होती है। – user2398029

उत्तर

7

मैं समझ में नहीं आया कि क्या ~/.profile सही ढंग से करता है, मुझे इसके बजाय ~/.bash_profile बदलने की जरूरत है। समस्या सुलझ गयी!

1.

vi ~/.zshrc 

2. मैट की तरह कहा, जोड़ें::

if test -f ~/.rvm/scripts/rvm; then 
    [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm 
fi 

3. पुनः प्रारंभ

+0

इन लाइनों को अपनी bashrc फ़ाइल में जोड़ें – pradeek

42

आपको वर्तमान सत्र में आरवीएम स्क्रिप्ट को स्रोत करना है क्योंकि यह शैल पर्यावरण में परिवर्तन करता है - और यह कि बच्चे की प्रक्रिया से किया जाना बिल्कुल असंभव है। बाह्य आदेश के रूप में RVM चलाने पर आपके प्रयास सफल नहीं हो सकते हैं।

वास्तव में इसे ठीक करने के आप दो विकल्प हैं:

  1. अपने टर्मिनल एमुलेटर को कॉन्फ़िगर, बल्कि एक गैर लॉगिन खोल से, एक लॉगिन खोल शुरू करने के लिए इतना है कि अपने .profile भरी हुई है।
  2. इसके बजाय स्रोत RVM के लिए .bashrc संशोधित करें, जो गैर-लॉगिन शैल के लिए भी काम करता है।

दूसरा तुम सिर्फ ~/.bashrc को जोड़ सकते हैं करने के लिए:

if test -f ~/.rvm/scripts/rvm; then 
    [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm 
fi 
+4

कृपया ~/.bashrc में स्रोत आरवीएम पर विज्ञापन न दें, यह सही समाधान नहीं है, बिंदु 1 जाने का अच्छा तरीका है, यहां कुछ विवरण: https://rvm.beginrescueend.com/support/faq/# shell_login – mpapis

+0

@mpapis आह, मैंने सोचा कि ~/.profile ने ~/.bash_profile किया था; समस्या सुलझ गयी। – Jwosty

8

आप खोल के बजाय पार्टी के रूप में zsh का उपयोग कर रहे हैं, तो आप करने के लिए है टर्मिनल 4. हो गया!

rvm use 1.9.3 

Wil काम

+2

zsh shell के साथ एक आकर्षण की तरह काम करता है! –

1

आप कुछ सेटिंग्स करना है।

टर्मिनल खोलें और यह आदेश चलाएं।

source ~/.rvm/scripts/rvm 

और फिर edit > Title and command पर जाएं और Run command as login shell

और आपका काम हो गया। अब आपको हर बार स्रोत निर्दिष्ट करने की आवश्यकता नहीं है।

0

जब मैं रूट बन गया तो मुझे यह समस्या थी। मैंने ऊपर दिए गए कई समाधानों की कोशिश की। अंत में जो काम किया गया वह रूट से निकल रहा था और नियमित उपयोगकर्ता था। वही है जो मुझे वैसे भी चाहिए।

3

खैर, पहाड़ी शेर के साथ (10.8.3) क्या मेरे लिए काम किया संपादन किया गया था/etc/प्रोफ़ाइल

और लाइन फ़ाइल के तल पर पहले उल्लेख जोड़ने:

if test -f ~/.rvm/scripts/rvm; then 
     [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm 
    fi 
2

मैं था एक ही मुद्दा। मैं .profile फ़ाइल अद्यतन नहीं मिल रही थी, मिला, तो मैं एक ही आदेश है कि .bash_profile में जोड़ा गया है कहा:

[[-s "$ घर/.rvm/scripts/rvm"]] & & स्रोत "$ घर/.rvm/scripts/rvm "

अगर यह सही तरीका है मैं नहीं जानता, लेकिन यह काम किया ...

+0

इन लाइनों को अपनी ~/.bashrc प्रोफ़ाइल में जोड़ें, यह काम करेगा – pradeek

0

इन समाधानों में से कोई भी मेरी समस्या जो Ubuntu 12.04 LTS पर था रिडीम करने के लिए लग रहा था ।

मैं क्या है निम्नलिखित:

  1. rvm get stable --auto-dotfiles RVM प्रलेखन here
  2. जोड़ा गया source ~/.profile की पहली पंक्ति के रूप में में बताया गया है: ~/.bash_profile

मैं सभी नहीं होंगे इन चरणों में से आरवीएम कमांड लाइन से त्रुटियों के रूप में दस्तावेज किया गया था:

आरवीएम एक समारोह नहीं है, 'आरवीएम उपयोग ...' के साथ रूबी का चयन काम नहीं करेगा। आपको लॉगिन खोल की अनुमति देने के लिए अपनी टर्मिनल एमुलेटर वरीयताओं को बदलने की आवश्यकता है। कभी-कभी /bin/bash --login कमांड के रूप में उपयोग करने की आवश्यकता होती है। उदाहरण के लिए कृपया https://rvm.io/integration/gnome-terminal/ पर जाएं।

और

  • चेतावनी: आपको '~/.profile' फ़ाइल है, तो आप, यह लोड करने के लिए कि निम्नलिखित पंक्ति जोड़ करना चाह सकते हैं करने के लिए '/ घर/user_name/.bash_profile ':

    स्रोत ~/.profile

2

आपको दूसरों को सुझाव देने के अलावा कुछ भी संपादित करने की आवश्यकता नहीं है। बस अपनी टर्मिनल की सेटिंग्स में जाएं और "लॉगिन शेल के रूप में रन कमांड" का चयन करें। यह अगले टर्मिनल उदाहरण पर चलाने के लिए प्रमोफाइल का कारण बन जाएगा। अपने टर्मिनल को दोबारा खोलें और आपको rvm use 1.9.3 (या जो भी संस्करण आपने इंस्टॉल किया है) का उपयोग करने में सक्षम होना चाहिए।

अधिक जानकारी rvm.io पर पाया

https://rvm.io/integration/gnome-terminal

1

क्या मुझे पंगा लेना था संभालने के बाद से मुझे लगता है मैं मैन्युअल रूप से चला सकते हैं एक का उपयोग कर रहा था मेरी पथ सही था (जो भी जवाब के लिए एक महान जगह है) ।

स्पष्ट रूप से विभिन्न निष्पादन योग्य या स्क्रिप्ट हैं जिनका उपयोग किया जा सकता है और विभिन्न स्थानों पर स्थित हैं।

मैंने सोचा था कि पथ मीना का उपयोग करना चाहिए यह था कि:

/usr/local/rvm/bin/rvm 

जब वास्तविकता में यह इस था:

/usr/local/rvm/scripts/rvm 
संबंधित मुद्दे