Mac OSX Yosemite के नवीनतम संस्करण में Ruby संस्करण 2.0.0 को कैसे अपडेट करें?


377

मुझे अपने रूबी संस्करण को 2.0.0 से नवीनतम संस्करण में अपडेट करने की आवश्यकता है, मैं कुछ रत्नों का उपयोग नहीं कर सकता क्योंकि मेरा संस्करण अपडेट नहीं है। मैंने कुछ समय पहले रूबी को स्थापित करने के लिए होमब्रे का इस्तेमाल किया था, मैं अपने रूबी संस्करण को कैसे अपडेट कर सकता हूं?


जब आप टाइप करते हैं which rvmया which rbenvआपकी कमांड लाइन में क्या होता है
MageeWorld

@ChuchaC कृपया, यहां और यहां देखें
vhristoskov

1
जैसा दिखता है brew install ruby, काफी है। यहाँ जाँच करें
वेणुगोपाल

जवाबों:


709

अपना टर्मिनल खोलें और चलाएं

curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s stable

जब यह पूरा हो जाता है, तो आपकोrvm कमांड को काम करने के लिए अपने टर्मिनल को पुनरारंभ करना होगा।

अब, भागो rvm list known

यह माणिक के संस्करणों की सूची दिखाता है।

अब, rvm install ruby@latestनवीनतम रूबी संस्करण प्राप्त करने के लिए चलाएं ।

यदि आप ruby -vटर्मिनल में टाइप करते हैं, तो आपको देखना चाहिए ruby X.X.X

यदि यह अभी भी आपको दिखाता है ruby 2.0., तो दौड़ें rvm use ruby-X.X.X --default


3
2.2.0 रूबी का नवीनतम संस्करण नहीं है।
जॉर्डन

1
@ जोर्डन माय बैड 2.3 का स्टेबल वर्जन है
अभिन रेड्डी किसर जूल

71
यह आरवीएम स्थापित करने के लिए मैक ओएस पर काम करता है:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed

7
2.4 नवीनतम स्थिर संस्करण है:
आरवीएम

7
सीधे कर्ल आउटपुट को क्रियान्वित करने के लिए पाइपिंग एक सुरक्षा दुःस्वप्न होता है।
arp

214

केवल समाधान निकाला

अपडेट करें:

टिप्पणियों (कुदोस से लेकर मैक्सीम लुज़िक) तक, मैंने परीक्षण नहीं किया है, लेकिन अधिक सुरुचिपूर्ण समाधान की तरह लगता है:

ब्रू के माध्यम से रूबी स्थापित करने के बाद, नवीनतम रूबी स्थापना के लिंक को अद्यतन करने के लिए निम्नलिखित कमांड चलाएँ: brew link --overwrite ruby

मूल उत्तर:

पार्टी के लिए देर से, लेकिन काढ़ा का उपयोग करना पर्याप्त है। यह आरवीएम स्थापित करने के लिए आवश्यक नहीं है और मेरे लिए यह सिर्फ जटिल चीजें हैं।

तक brew install rubyआप वास्तव में नवीनतम (वर्तमान v2.4.0) स्थापित कर रहे हैं। हालाँकि, आपका मार्ग पहले 2.0.0 पाता है। इससे बचने के लिए बस पूर्ववर्तीता ( स्रोत ) बदलें । मैंने इसे बदलकर ~/.profileऔर सेटिंग करके किया:

export PATH=/usr/local/bin:$PATH

इसके बाद मैंने पाया कि बंडलर रत्न अभी भी 2.0.0 संस्करण का उपयोग कर रहा था, बस इसे फिर से स्थापित करें: gem install bundler


2
वास्तव में मैं क्या देख रहा था, धन्यवाद। अगर मैं माणिक देव होता, तो rvm का अर्थ होता, लेकिन मैं ऐसा नहीं हूं, इसलिए यह सही है।
अधिकतम

4
यह काम, स्थापित करने के बाद "स्रोत ~ /
.bash_profile

9
या काढ़ा के माध्यम से रूबी स्थापित करने के बाद, नवीनतम रूबी स्थापना के लिंक को अद्यतन करने के लिए निम्नलिखित कमांड चलाएं:brew link --overwrite ruby
मक्सिम लुज़िक

1
overwriteमाणिक संस्करण के बजाय , आप बस लिख सकते हैंbrew unlink ruby && brew link ruby
हम्सटर्निक

7
@MaksimLuzik का समाधान MacOS में मेरे लिए काम नहीं करता है। brew link --overwrite rubyकी ओर जाता हैWarning: Refusing to link macOS-provided software: ruby
राफेल बेकल जूल

97

मैं rbenv * https://github.com/rbenv/rbenv की सलाह देता हूं

* यदि यह आपके मानदंड से मिलता है: https://github.com/rbenv/rbenv/wiki/Why-rbenv? :

राबनेव करता है ...

  • एप्लिकेशन-विशिष्ट रूबी संस्करणों को निर्दिष्ट करने के लिए समर्थन प्रदान करें ।
  • आप प्रति उपयोगकर्ता के आधार पर वैश्विक रूबी संस्करण को बदलते हैं।
  • आपको रूबी संस्करण को पर्यावरण चर के साथ ओवरराइड करने की अनुमति देता है ।

आरवीएम के विपरीत, रेनेव नहीं करता है ...

  • अपने खोल में लोड करने की आवश्यकता है। इसके बजाय, rbenv का शिम अप्रोच आपके लिए डायरेक्टरी को जोड़कर काम करता है $PATH
  • शेल कमांड को ओवरराइड करें cdया जैसे शीघ्र हैक की आवश्यकता हो। यह खतरनाक और त्रुटि-प्रवण है।
  • कॉन्फ़िगरेशन फ़ाइल है। रूबी के किस संस्करण को आप उपयोग करना चाहते हैं इसके अलावा कॉन्फ़िगर करने के लिए कुछ भी नहीं है।
  • रूबी स्थापित करें। आप रूबी को स्वयं बना और स्थापित कर सकते हैं, या प्रक्रिया को स्वचालित करने के लिए रूबी-बिल्ड का उपयोग कर सकते हैं।
  • रत्नों का प्रबंध करें। आवेदन निर्भरता के प्रबंधन के लिए बंडलर एक बेहतर तरीका है। यदि आपके पास ऐसी परियोजनाएं हैं जो अभी तक बुंडलर का उपयोग नहीं कर रही हैं तो आप रेंबव-रत्नसेट स्थापित कर सकते हैं plugin ।
  • अनुकूलता के लिए रूबी पुस्तकालयों में बदलाव की आवश्यकता है। रेंबव की सादगी का मतलब है जब तक यह आपके अंदर है $PATH, इसके बारे में कुछ और जानने की जरूरत नहीं है।

इंस्टालेशन

Homebrew http://brew.sh स्थापित करें

फिर:

$ काढ़ा अद्यतन
 $ काढ़ा स्थापित rbenv
$ काढ़ा rbenv रूबी-बिल्ड स्थापित करें

# रैबव को बैश में जोड़ें ताकि हर बार जब आप टर्मिनल खोलते हैं तो यह लोड हो
प्रतिध्वनि 'अगर जो rbenv> / dev / null; फिर eval "$ (rbenv init -)"; फाई '>> ~ / .bash_profile
source ~ / .bash_profile

अद्यतन चलाने के
बाद एक अतिरिक्त कदम हैऔरयह कहते हैं कि यहकरने के लिए एक पंक्ति जोड़ें। उसके बाद अपनी टर्मिनल विंडो को फिर से खोलें […] SGI 30 सितंबर को 12:01 - https://stackoverflow.com/users/119770brew install rbenvrbenv init.bash_profile

$ rbenv इंस्टॉल - सूची
उपलब्ध संस्करण:
 1.8.5-p113
 1.8.5-P114
 [...]
 2.3.1
 2.4.0-देव
 JRuby-1.5.6
 [...]
$ rbenv 2.3.1 स्थापित करें
[...]

वैश्विक संस्करण सेट करें:

$ rbenv वैश्विक 2.3.1
$ माणिक -v
रूबी 2.3.1p112 (2016-04-26 संशोधन 54768) [x86_64-darwin15]

.ruby-versionअपने रेपो के मूल dir में जोड़कर अपने रेपो के स्थानीय संस्करण को सेट करें :

$ cd ~ / whatevs / प्रोजेक्ट्स / new_repo
$ गूंज "2.3.1"> .ruby- संस्करण

MacOS के लिए इस लिंक पर जाएँ


3
@ChuchaC कोई संभावना नहीं। लेकिन इससे पहले कि आप ऐसा करते हैं, यह rbenv रीडमे से है: "संगतता नोट: rvv RVM के साथ असंगत है। कृपया rvv को स्थापित करने से पहले RVM को पूरी तरह से अनइंस्टॉल करना और अपने शेल आरंभीकरण फ़ाइलों से किसी भी संदर्भ को हटाना सुनिश्चित करें।" - github.com/rbenv/rbenv#installation
SoAwesomeMan

17
मदद नहीं की। अभी भी मानक 2.0.0 संस्करण के ruby -vबाद के लिए मिल रहा हैrbenv global ...
tuxSlayer

8
brew install rbenvरन के बाद एक अतिरिक्त चरण है rbenv initऔर एक पंक्ति को .bash_profile में जोड़ देता है क्योंकि यह बताता है। उसके बाद अपनी टर्मिनल विंडो को फिर से खोलें, करें rbenv install 2.3.1, rbenv global 2.3.1 और रेंब अपना काम करेंगे
SGI

6
शायद देर हो चुकी है, लेकिन लोग हैं, जो, @tuxSlayer रूप में एक ही मुद्दा का सामना करना पड़ा के लिए भविष्य में संदर्भ के rbenv rehashबाद rbenv globalमेरे लिए काम किया
शॉन

2
के बाद rbenv init, ruby -vसही संस्करण 2.1.2 आउटपुट करता है, लेकिन बंडल इस तरह से कुछ त्रुटि का सामना करता है paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648। अंत में एक रन के साथ इसे प्राप्त करने का प्रबंधन करें rbenv rehash। धन्यवाद @ सीन
जेम्स

51

टर्मिनल खोलें:

sudo gem update --system 

यह काम करता हैं!


3
यह वास्तव में काम करने लगता है, और अन्य उत्तरों की तुलना में एक unmeasurably अधिक सीधे आगे है। लेकिन कुछ रत्नों को स्थापित करते समय (उदाहरण के लिए सुनें) वे शिकायत करते हैं कि संस्करण आवश्यकता से कम है।
विलियम आइस्टेड

8
यह रत्न माणिक नहीं है
विलियम जीपी


2
मुझे इस जवाब से भी गुमराह किया गया। जब आप कंसोल से इसे चलाते हैं तो इसमें कोई त्रुटि नहीं उत्पन्न होती है। हालांकि, यह रूबी को अपडेट नहीं करता है। यह रूबी रत्न को अद्यतन करता है। रूबी को अपडेट करने के लिए अन्य उत्तरों में से एक का पालन करें (ओएस एक्स सिएरा का उपयोग करके)।
informaton

41

माणिक को v2.4 + में अपग्रेड करने का तेज़ तरीका

brew upgrade ruby

या

sudo gem update --system 

4
यह सामान का एक टन करने के लिए प्रकट होता है, लेकिन माणिक उन्नयन उनमें से एक नहीं है। इसके साथ समाप्त होता है: /usr/local/Homebrew/Library/Homebrew/brew.rb:12:in '<main>': Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError)
nkoren

1
यह काढ़ा का उपयोग करके माणिक संस्करण को अपग्रेड करने का सही और सबसे अच्छा तरीका है।
user1101733

मेरे लिए काम नहीं करता है। ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
सेबास्टियन लोइसेल

@ SébastienLoisel क्या आप अपने OS, कमांड आदि के बारे में कुछ जानकारी दे सकते हैं
fatihyildizhan

1
@fatihyildizhan स्पष्ट रूप से माणिक / रत्न / आदि Mavericks पर एक अर्धनिर्मित अवस्था में है। मैंने कैटालिना में अपग्रेड करके अपने मुद्दों को सुलझा लिया है। मुझे उन सभी त्रुटियों को याद नहीं है जो मेरे पास थीं, लेकिन उनमें बहुत सारे दृष्टिकोण थे। मुझे याद नहीं है कि क्या मैं कोकोपोड्स या रत्नों को उन्नत करने की कोशिश कर रहा था या क्या, लेकिन यह अनिवार्य रूप से निराशाजनक था।
सेबास्टियन लोइसेल

31

आप https://www.ruby-lang.org/en/downloads/ को देखकर माणिक के नवीनतम संस्करण को निर्दिष्ट कर सकते हैं

  1. नवीनतम संस्करण प्राप्त करें:

    curl -sSL https://get.rvm.io | bash -s stable --ruby

  2. इसे स्थापित करो:

    rvm install 2.2

  3. इसे डिफ़ॉल्ट के रूप में उपयोग करें:

    rvm use 2.2 --default

या माणिक से नवीनतम कमांड चलाएं:

rvm install ruby --latest
rvm use 2.2 --default

धन्यवाद, यह मेरे लिए काम किया। समाधान के साथ rbenvकाम नहीं कर रहा था
tuxSlayer

यह मेरे लिए भी काम किया !! समाधान के साथ rbenvकाम नहीं किया
ruoho ruotsi

5

यदि आपके पास मैक ओएस है और Brewस्थापित है, तो आप निम्नलिखित कमांड की कोशिश कर सकते हैं,

brew upgrade ruby

2

मामले में किसी को भी वही त्रुटि मिलती है जो मैंने किया था: "आवश्यकताएँ स्थापना स्थिति के साथ विफल हुई: 1." यहाँ क्या करना है:

इस आदेश के साथ Homebrew स्थापित करें (किसी कारण से स्वचालित रूप से काम नहीं कर सकता है):

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

फिर rvm का उपयोग करके फिर से स्थापित करने के लिए आगे बढ़ें

curl -sSL https://get.rvm.io | bash -s stable --ruby

टर्मिनल से बाहर निकलें और फिर खोलें:

rvm install 2.2
rvm use 2.2 --default

2

brew install rbenv ruby-build

राशन को बैश में जोड़ें ताकि यह हर बार लोड हो जाए जब आप एक टर्मिनल खोलते हैं

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile

source ~/.bash_profile

रूबी स्थापित करें

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

स्रोत पृष्ठ से लिंक करें

0

टर्मिनल में: rvm gemset use global


5
हालांकि यह कोड स्निपेट समाधान हो सकता है, स्पष्टीकरण सहित वास्तव में आपके पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और उन लोगों को आपके कोड सुझाव के कारणों का पता नहीं चल सकता है।
एडम

-2

टर्मिनल में निम्नलिखित कमांड दर्ज करने का सरल तरीका निश्चित रूप से है:

sudo gem update --system

--no-documentयदि आप दस्तावेज़ डाउनलोड नहीं करना चाहते हैं तो आप ध्वज को जोड़ सकते हैं । कमांड चलाने के बाद यहाँ नमूना आउटपुट है:

sudo gem update --system
Password:
Updating rubygems-update
Fetching: rubygems-update-2.6.8.gem (100%)
Successfully installed rubygems-update-2.6.8
Parsing documentation for rubygems-update-2.6.8
Installing ri documentation for rubygems-update-2.6.8
Installing darkfish documentation for rubygems-update-2.6.8
Installing RubyGems 2.6.8
RubyGems 2.6.8 installed
Parsing documentation for rubygems-2.6.8
Installing ri documentation for rubygems-2.6.8

------------------------------------------------------------------------------

RubyGems installed the following executables:
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem

Ruby Interactive (ri) documentation was installed. ri is kind of like man 
pages for ruby libraries. You may access it like this:
  ri Classname
  ri Classname.class_method
  ri Classname#instance_method

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