मैं आरवीएम का उपयोग करके अपना रूबी संस्करण कैसे बदल सकता हूं?


111

मैं वर्तमान रूबी संस्करण को स्विच करने में सक्षम नहीं हूं:

  ~  rvm list

rvm rubies

   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]

  ~  rvm use ruby-1.9.3-p0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

क्या आप सुनिश्चित हैं कि आपने सही तरीके से आरवीएम स्थापित किया है? आप कौन सा ओएस उपयोग कर रहे हैं ?
घाव

2
rvm infoकृपया अपने प्रश्न के आउटपुट को संलग्न करें ।
टिन मैन

मैं उबंटू के साथ rvm स्थापित करके एक समान समस्या थी 11.10, मैं इसे हटाने और इसे फिर से स्थापित करने के साथ था$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
les

4
क्या आपके शेल के स्टार्टअप स्क्रिप्ट में आरवीएम लोड फ़ंक्शन है? [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"उपयोग करने के लिए कोड है। यदि आपके पास आपके मार्ग में RVM स्थापित है, लेकिन आपके पास ऐसा नहीं है, तो आपकी स्टार्टअप स्क्रिप्ट में, आप RVM is not a functionत्रुटि प्राप्त कर सकते हैं ।
मिशेल टायली

यह समाधान मेरे लिए काम करता है - rvm.io/integration/gnome-terminal
gotqn

जवाबों:


122

ठीक कर दिया। मुझे जोड़ने की जरूरत है:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM 

सेवा .zshrc


57

यह मेरे साथ भी हुआ। मैं था:

export PATH=~/.rvm/bin:$PATH

मेरे .bashrc में जोड़ा गया।

मुझे बस इतना करना था कि मुझे एक और जोड़ना था

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

एक ही फाइल के लिए और यह काम किया! बेशक, आपको उसके बाद अपने टर्मिनल को पुनरारंभ करना होगा।


1
मेरे पास मेरी ~ / .bash_profile में यह एक ही लाइन ([[-s "$ HOME / ...) थी और जब मैंने नया टर्मिनल खोला तो" लेना "प्रतीत नहीं हुआ ... लेकिन जब मैंने लाइन जोड़ी। ~ / .bashrc में PATH लाइन के नीचे, यह काम करता है - अर्थ, मैं 1.9.3 rvm टाइप कर सकता हूं और यह तुरंत एक कमांड के रूप में rvm को पहचानेगा, जैसे मुझे पहले प्रकार के स्रोत की आवश्यकता है ~ / .bash_profile- i '। नहीं एक Linux व्यक्ति है, इसलिए यह मुझे भ्रमित करता है, लेकिन मुझे खुशी है कि यह काम कर रहा है। शायद कोई मेरी उलझन को स्पष्ट कर सकता है।
टिमडॉग

यह बहुत अच्छा है, मैं अभी इस लाइन को ~ / .bashrc में रखता हूं, यह काम करता है। लेकिन मुझे भी पता नहीं क्यों।
जैक मा

हाँ इसके काम। लेकिन हर बार जब मैं अपनी मशीन को पुनरारंभ करता हूं तो मुझे ऊपर बताई गई कमांड देनी होगी। अगर मैं यह कमांड नहीं प्रदान करता हूं तो यह कहता है कि आरवीएम एक फ़ंक्शन नहीं है।
अपूर्वा मयंक

11

आपका शेल RVM फ़ंक्शन के बारे में नहीं जानता है। इसे स्थापित करने के बाद, यह आपको बताता है कि इस की देखभाल कैसे करें। या आरवीएम साइट पर स्थापित पृष्ठ पर जाएं और "2. फ़ंक्शन के रूप में अपने शेल सत्रों में आरवीएम लोड करें" शीर्षक अनुभाग देखें।

अपने ~ / .bash_profile में rvm को लोड करने वाली लाइन जोड़ने के लिए इसे एक बार चलाएं:

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

या इसे स्वयं जोड़ें। (ध्यान दें कि कुछ प्रणालियों पर, आप इसे अन्य स्थानों पर रखना चाहेंगे, उदाहरण के लिए मेरे सिस्टम पर, मैक OSX शेर, मैंने इसे ~ / .profile में डाल दिया है)


मैं ओएस एक्स स्नो लेपर्ड का उपयोग कर रहा हूं, उस लाइन को मेरे प्रॉफिटेबल में डालकर मेरे लिए ट्रिक किया।
हेल्ड्रैग

9

(कुबंटु 11.10) ~/.bash_profileअब कहा जाता है~/.profile

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.profile
source ~/.profile
rvm info # And now the fields display

6

रूबी के डिफ़ॉल्ट संस्करण को बदलने के लिए:

Ubuntu 11.10 में
अपनी GNOME टर्मिनल सेटिंग बदलें:

टर्मिनल पर जाएं और फिर निम्नलिखित निर्देशों का पालन करें:

1.  Edit > Profile Preferences
2.  Open Title and Command Tab               
3.  Check Run Command as a login Shell 
4.  Restart terminal

इस आदेश को टर्मिनल पर चलाएँ:

rvm --default use ruby_Version

5

अपने .bash_profile में सभी आरवीएम कार्यक्षमता जोड़ने के लिए आपको निम्नलिखित कमांड का उपयोग करना चाहिए:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

उसके बाद आपको वर्तमान शेल को फिर से लोड करना चाहिए या एक नया टर्मिनल सत्र खोलना चाहिए और .bash_profile को पुनः लोड करने के लिए निम्न कमांड टाइप करें।

source .bash_profile

4

उपरोक्त समाधान केवल काम करेगा, अगर आरवीएम वर्तमान उपयोगकर्ता के लिए स्थापित किया गया है। एक अधिक सामान्य समाधान RVM पथ चर का उपयोग करेगा:

# The following code loads RVM as user or system install:
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm"

rvm_path=/home/myuser/.rvm . /home/myuser/.rvm/scripts/rvm
जोस

3

मुझे सिर्फ स्रोत का आविष्कार करना था ~/.bash_profile


3

उबंटू 12.04 की एक साफ स्थापना पर मैं एक ही मुद्दे में भाग गया। आरवीएम इंस्टॉलर मूल समस्या से बचने के लिए कोड की आवश्यक बिट ~ / .bash_login नामक फ़ाइल बनाता है या बनाता है:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

हालांकि यह आह्वान नहीं लगता है। इसे ~ / .bashrc में जोड़ने से मेरे लिए समस्या हल हो गई।


1

RVM इंस्टॉल करना, यहां देखें http://octopress.org/docs/setup/rvm/


RVM स्थापित करने के लिए गैर-आधिकारिक स्रोतों का उपयोग न करें। RVM स्थापना पेज विशेष रूप से कहते हैं: "नोट किसी भी बाहर ट्यूटोरियल समर्थित नहीं हैं कि कि क्या वे काम करते हैं या नहीं ट्यूटोरियल स्थापना प्रक्रिया डिबगिंग आदमी घंटे के महान, लेकिन हम खर्च किया है भारी मात्रा में कर रहे हैं स्थापित करने की प्रक्रिया (ते) का उपयोग करें से।। यह साइट केवल, क्योंकि यह एकमात्र समर्थित स्थापना प्रकार और विधियाँ हैं। "
टिन मैन

1

Ubuntu पर मेरे मामले में, ~ / .bashrc में प्रविष्टि थी:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && ."$HOME/.rvm/scripts/rvm" # BAD

के बजाय:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # WORKING

के बीच लापता स्थान को नोटिस करें। और "$ घर।

इसके अलावा, यदि यह समस्या है, तो आपको अपना टर्मिनल शुरू करते समय शीर्ष पर एक त्रुटि भी देखनी चाहिए।


0

मेरे पास आरवीएम की एक वैश्विक स्थापना थी, जो /etc/profile.d/rvm.sh चलाती है। हालाँकि, उस स्क्रिप्ट को सेट होने के लिए BASH_VERSION या ZSH_VERSION की आवश्यकता होती है। मैं क्रॉस्टैब से चल रहा था, जो "श" का उपयोग करता है।

मैंने एक रैपर स्क्रिप्ट बनाई जो स्रोत /etc/profile.d/rvm.sh के लिए / bin / bash का उपयोग करती है।


0

लॉगिन शेल की अनुमति देने के लिए आपको अपनी टर्मिनल एमुलेटर वरीयताओं को बदलना होगा। कभी-कभी इसे /bin/bash --loginकमांड के रूप में उपयोग करने की आवश्यकता होती है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.