मैं Homebrew का उपयोग करके स्थापित रूबी 1.9.3 पर कैसे स्विच कर सकता हूं?


82

मैंने होमब्रे का उपयोग करके माणिक 1.9.3 स्थापित किया है

काढ़ा स्थापित रूबी

लेकिन डिफ़ॉल्ट 1.8.7 अभी भी उपयोग किया जाता है। मैं डिफ़ॉल्ट माणिक के रूप में 1.9.3 का उपयोग करने के लिए ऑक्स को कैसे बदल सकता हूं?

जवाबों:


90

मेरा सुझाव है कि आप आरवीएम पर एक नज़र डालें । फिर आप इसे डिफ़ॉल्ट रूप से सेट कर सकते हैंrvm use 1.9.3 --default

लेकिन अगर आप अपने होमब्रे इंस्टॉल से खुश हैं।

तो बस में निर्देशिकाओं की पूर्वता बदलें PATH

यहाँ मेरा / etc / पाथ है

# homebrews should always take precedence
/usr/local/bin

# the default stack
/usr/bin
/bin
/usr/sbin
/sbin

यह आमतौर पर होमब्रे के लिए महत्वपूर्ण है, अन्यथा गिट, माणिक, pg_admin के सिस्टम संस्करण, ... सभी का उपयोग काढ़ा संस्करण के बजाय किया जाएगा।

यदि आप कहते हैं कि which -a rubyआप सभी स्थापित माणिक, और पूर्वता देखेंगेPATH

जैसे।

$ which -a ruby
/Users/matthew/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
/Users/matthew/.rvm/bin/ruby
/usr/bin/ruby


अद्यतन: मुझे नहीं लगता कि आपको बदलना चाहिए /etc/paths

इसके बजाय आप की जो जांच करने की आवश्यकता .profile, .bashrcया .bash_loginअपने खोल में लोड किया जा रहा है, और सिर्फ जोड़ने /usr/local/binअपने पथ पर।

मेरे लिए, मेरे पास केवल एक है .profile। यदि आप उन फ़ाइलों में से कोई भी पहले से ही अपने घर निर्देशिका में मौजूद है, तो आप उस फ़ाइल को बना सकते हैं।

# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH

1
अंत में मैं rbenv का चयन करता हूं, पहले इस्तेमाल किया rvm भी।
एलेक्सी ज़खारोव

ठंडा। मेरा सुझाव है कि आप वैसे भी अपने / आदि / रास्तों में बदलाव करें। मैं अजीब त्रुटियों को प्राप्त करता था (उदाहरण के लिए। मैं brew upgrade git, लेकिन संस्करण नहीं बदला। मुझे लगता है कि मैं कभी भी काढ़ा संस्करण का उपयोग नहीं कर रहा था)
मैथ्यू रूडी

29
केवल "आरवीएम का उपयोग करें" कहने के बजाय एक वास्तविक उत्तर प्रदान करने के लिए धन्यवाद। हर कोई आरवीएम का उपयोग नहीं कर सकता है और मुझे नफरत है जब शीर्ष उत्तर ओपी को कुछ ऐसा करने के लिए कहता है जो उन्होंने नहीं पूछा कि कैसे करना है।
ईंट


मुझे rvm का उपयोग करके रूबी को संकलित करने में समस्याएँ थीं इसलिए मैंने बिना किसी समस्या के काम करने के बजाय rbenv के साथ जाना समाप्त कर दिया।
पेलेट

73

संक्षिप्त जवाब:

homebrew के माध्यम से माणिक स्थापित करने के बाद बस यह करें:

brew link --overwrite ruby

और अपने टर्मिनल को पुनः आरंभ या फिर से खोलें  


लंबा जवाब

इसलिए मैंने होमब्रे का उपयोग करके माणिक की एक सामान्य स्थापना की

brew install ruby

यह ठीक है लेकिन यह अभी भी सिस्टम के डिफ़ॉल्ट रूबी का उपयोग कर स्थापित किया गया था। जिसे मैंने सत्यापित करके किया है:

which ruby 
#/usr/bin/ruby

इसलिए मैथ्यू रूडी के सुझाव के अनुसार, मैंने अपने / आदि / रास्तों के क्रम की जाँच की, और सब अच्छा था।

तब मैंने करने का फैसला किया:

which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby

इसलिए ऐसा कुछ भी नहीं तोड़ा गया। Homebrew विधि का उपयोग करके फिर से रूबी को फिर से स्थापित करने की कोशिश की, और फिर मैंने इसे पाया।

होमब्रे का उल्लेख किया गया है:

Warning: ruby-2.3.1 already installed, it's just not linked

तो करना था:

brew link --overwrite ruby

13
अपने iTerm उदाहरण को पुनरारंभ करना न भूलें, अन्यथा ruby --versionआपको एक पुराना संस्करण दिखाई देगा।
डायलेक्स

1
क्या आपको वास्तव में पुनरारंभ करने की आवश्यकता है? या बस hash -r?
dwanderson

1
FYI करें, Homebrew अब मना कर देते हैं। मेरे लिए मछली के साथ, यह सुझाव दिया गया है: गूंज 'सेट -g fish_user_paths "/ usr / स्थानीय / ऑप्ट / रूबी / बिन" $ fish_user_paths' >> >> ~ / .config / मछली / कॉनफ़िश
Atem18

46

यदि आप 1.9.3 को स्थापित करने के लिए होमब्रे का उपयोग करना चाहते हैं, तो आप इन चरणों का पालन कर सकते हैं:

$ brew update
$ brew install rbenv
$ brew install ruby-build

एक बार जब आपके पास रेंबव और रूबी-बिल्ड इंस्टॉल हो जाता है, तो आप रूबी 1.9.3 स्थापित करने के लिए निम्न कमांड चला सकते हैं।

$ rbenv install 1.9.3-p125

अब यदि आप डिफ़ॉल्ट रूप से 1.9.3 का उपयोग करना चाहते हैं, तो आप निम्न कमांड चला सकते हैं:

$ rbenv global 1.9.3-p125

स्रोत लिंक अब मृत है
क्रिस ब्राउन

4
OS X 10.11+ पर काम नहीं करता है। सिस्टम पुराने संस्करण का उपयोग करता रहता है, न कि मैंने जो इंस्टॉल किया है / जिसे rbenv इंस्टॉल 1.9.3-p125 / rbenv ग्लोबल 1.9.3-p125 के साथ डिफ़ॉल्ट रूप में तय किया है
आंद्रेई कोंस्टेंटिनोव

"रेंबव ग्लोबल 1.9.3-p125" - इस लाइन ने मेरी रात को बचाया। धन्यवाद!
एंड्री कोवलचुक

मेरे लिए काम करने के लिए प्रतीत नहीं होता है। मुझे काम करने से पहले अपने $ PATH में माणिक निष्पादन के लिए रास्ता बनाना था।
mr-sk

6

मेरी भी ऐसी ही स्थिति थी। मैं Homebrew का उपयोग कर माणिक स्थापित किया। which -a rubyमुझे निम्नलिखित आउटपुट दिया:

#usr/local/bin/ruby
#/usr/bin/ruby

जिसका अर्थ है कि नए इंस्टॉल किए गए संस्करण का उपयोग किया जाना चाहिए, लेकिन फिर ruby --versionभी पुराने सिस्टम संस्करण को वापस कर दिया।

मैंने टर्मिनल (Cmd + Q) छोड़ दिया, और पुनः आरंभ करने के बाद ruby --versionसही संस्करण लौटाया। इसलिए सुनिश्चित करें कि आप किसी भी अन्य (संभावित अनावश्यक) सुधार की कोशिश करने से पहले स्थापित करने के बाद टर्मिनल को पुनरारंभ करें।


4

SHORT: ध्यान दें कि आप इसे किस लिए बदलना चाहते हैं।

यदि आप OS X पर हैं और Jekyll जैसी किसी चीज़ के लिए रूबी का उपयोग करने का प्रयास कर रहे हैं, तो homebrew का उपयोग न करें क्योंकि यही Apple रूबी के लिए उपयोग कर रहा है और यदि आप सुनिश्चित नहीं हैं कि इसका उपयोग करना अच्छा नहीं होगा करते हुए। इसके बजाय, rbenv या RVM का उपयोग करें।

LESS SHORT: मैं Jekyll का उपयोग करने के लिए डिफ़ॉल्ट संस्करण से अद्यतन संस्करण (2.0) से स्विच करने का प्रयास कर रहा था क्योंकि इसके लिए रूबी संस्करण 2.2.5 और ऊपर की आवश्यकता थी। मैंने इसे अपडेट किया और संस्करण 2.5 स्थापित किया गया था, लेकिन जब मैंने "रूबी -v" की जांच की, तो यह अभी भी 2.0 था। एक बार जब मैं अंत में डिफ़ॉल्ट संस्करण को बदलने के लिए तैयार हो गया, तो मुझे उस पैकेज को स्थापित करने में सक्षम नहीं था जिसकी मुझे आवश्यकता थी क्योंकि मेरे पास लिखने की अनुमति नहीं थी। उदाहरण के लिए, यदि आप कुछ इस तरह से आते हैं, तो आपको शायद वही समस्या हो रही है

$ gem install jekyll bundler
ERROR:  While executing gem ... (Gem::FilePermissionError)    
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

0

OSX में आप पथ का उपयोग कर बदल सकते हैं:

सुडो नैनो / आदि / पथ

और फिर एक पथ जोड़ें या क्रम बदलें।


-2

बस इसके जवाब की तलाश में किसी और के लिए एक वैकल्पिक दृष्टिकोण के रूप में - आप अपने .bash_profile में एक उपनाम सेट कर सकते हैं।

ruby="/usr/local/bin/ruby"

यह है कि मैं इस मुद्दे के आसपास कैसे मिला


हाँ, उस समस्या के साथ (और सबसे अधिक संभावना है कि डाउनवोट्स का कारण) यह है कि यह केवल तभी काम करता है जब आप रूबी को मैन्युअल रूप से लागू करना चाहते हैं और सिस्टम में एक विशिष्ट संस्करण का उपयोग नहीं करना चाहते हैं
डेविड सीक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.