मैं rvm का उपयोग करके अपने रूबी 1.9.2-p0 को नवीनतम पैच स्तर पर कैसे अपग्रेड करूं?


116

माणिक का मेरा वर्तमान संस्करण है, ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]लेकिन मैं इसे आरवीएम का उपयोग करके नवीनतम पैच स्तर पर अपडेट करना चाहता हूं। मैं यह कैसे कर सकता हूँ?

जवाबों:


163

सबसे पहले, रन करके अपने आरवीएम इंस्टॉलेशन को अपडेट करें rvm get stable

यह सुनिश्चित करने के लिए कि आप नया आरवीएम संस्करण चला रहे हैं, आपको फिर से दौड़ना होगा rvm reload(या बस एक नया टर्मिनल खोलना होगा)।

एक बार ऐसा करने के बाद, आप आरवीएम को रनिंग द्वारा इंस्टॉल करने के लिए उपलब्ध माणिक संस्करणों को सूचीबद्ध करने के लिए कह सकते हैं rvm list known

आउटपुट में आपको अब देखना चाहिए:

# MRI Rubies
...
[ruby-]1.9.2[-p320]
...

पैच स्तर के चारों ओर वर्ग कोष्ठक इंगित करते हैं कि यह वर्तमान में रूबी 1.9.2 के लिए RVM का डिफ़ॉल्ट पैच स्तर है।

अंत में, नया रूबी संस्करण स्थापित करने के लिए, बस चलाएं rvm install 1.9.2- और इसके संकलन के लिए प्रतीक्षा करें!


29
जो लोग ERROR: rvm अपडेट प्राप्त कर रहे हैं, उन्हें हटा दिया गया है। - rvm get latest/ rvm get headअब rvm उन्नत करने के लिए सही तरीके हैं।
जीबिल

98

रूबी दुभाषिया को अपग्रेड करें और मौजूदा रत्नों को रखें:

$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y

1.9.2 के नवीनतम स्थिर रिलीज के साथ बदलने के लिए। यह अव्यवस्था से बचा जाता है।

कुछ अतिरिक्त उपयोगी सुझाव, टिप्पणियों के लिए धन्यवाद (@ मौरो, @ जेम्स, @एसीबी)

$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby

3
इसके अलावा, आप rvm list knownउपलब्ध माणिक संस्करणों को देखने के लिए कर सकते हैं जिन्हें आप अपग्रेड कर सकते हैं।
जेम्स शेवेलियर

@ मौरो निडोला द्वारा सुझाए गए संपादन "$ rvm उन्नयन 1.9.2 1.9.2-p0 को $ rvm उन्नयन 1.9.2-p0 1.9.2 में बदल दिया जाना चाहिए"
iDev

मैं उनकी टिप्पणी @ACB नहीं देख सकता, मैं बदलूंगा, आपका प्रतिनिधि बताता है कि मुझे दोहरी जांच करने की आवश्यकता नहीं है। मैं जेम्स कमेंट के साथ भी अपडेट कर रहा हूं
oma

@ तो, मैं एक अलग तकनीक से हूं। तो आपको उस पर दोहरी जांच करनी पड़ सकती है। यह किसी ऐसे व्यक्ति द्वारा सुझाया गया संपादन था जिसे अमान्य संपादन के रूप में खारिज कर दिया गया। इस stackoverflow.com/review/suggested-edits/1365082 की जाँच करें । आदर्श रूप से उन्हें एक टिप्पणी के रूप में पोस्ट करना चाहिए था, इसके बजाय मैंने उनकी ओर से किया।
१२

34

पहला अपडेट आरवीएम:

rvm get stable

फिर अपने रूबी संस्करण को अपडेट करें:

rvm upgrade 2.0.0

सभी प्रश्नों के लिए हां चुनें:

Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y

यदि आप अपने रत्नों को नवीनतम संस्करणों में अद्यतन करना चाहते हैं, तो आप कर सकते हैं:

rvm all do gem update

संपादित करें: मैंने अभी यह रूबी 2.0.0 के नवीनतम संस्करण के लिए किया था (मैंने रूबी-2.0.0-पी 195 से रूबी-2.0.0-पी 353 तक अपडेट किया)। उसके बाद, मुझे जवाहरात को अद्यतन करने की कोशिश करने पर विभाजन की गलती हो रही थी। ऐसा इसलिए होता है क्योंकि रत्न माणिक 2.0.0-p195 के लिए स्थापित किए गए थे और उनमें से कुछ p353 के साथ असंगत हैं।

अब आप जा सकते हैं और उन रत्नों को खोजने की कोशिश कर सकते हैं जो असंगत हैं, लेकिन सबसे आसान उपाय सभी स्थापित रत्नों को निकालना और उन्हें फिर से स्थापित करना था। मैंने केवल gems/ruby-2.0.0-p353उस निर्देशिका को हटा दिया है जो अंदर स्थित थी/usr/local/rvm । यह आपके लिए कहीं और हो सकता है।

फिर मैं भाग गया gem install bundlerऔर मैंने अपने प्रत्येक रेल एप्लिकेशन के लिए किया bundle install


16

इस तरह:

rvm update; rvm reload
rvm install ruby-1.9.2-p136 
rvm --default ruby-1.9.2-p136

3
मुझे यह उत्तर पसंद है। मुझे लगता है कि आरवीएम का उपयोग करने के उद्देश्य को पराजित करने वाले रूबी प्रकार के संस्करण को अपग्रेड करना। P0 के साथ एक अलग संस्करण स्थापित करना और फिर डिफ़ॉल्ट के रूप में नए (या जो भी) संस्करण की घोषणा करना सुरुचिपूर्ण लगता है।
Tass

2
नवीनतम पैच को अपग्रेड करना सुरक्षा कारणों से कभी-कभी आवश्यक होता है - जैसे कि जब किसी विशेष रूबी संस्करण में कमजोरियों की खोज की जाती है।
असद आर।

2

आप उनके विकी में पेज का अनुसरण करके किसी भी पैच स्तर को स्थापित कर सकते हैं ।

इसके अलावा, प्रत्येक रूबी स्वतंत्र है, इसलिए आप वास्तव में 'रत्नों का उन्नयन और रखरखाव' नहीं कर रहे हैं, लेकिन एक नया पैच संस्करण स्थापित कर रहे हैं और फिर उस नए रूबी वातावरण में रत्नों को स्थापित कर रहे हैं।

यह हो सकता है कि रत्नों को खेलने में आया, हालांकि मैं उनका उपयोग नहीं करता।

अपने rvm को भी अपडेट करना न भूलें, बस थोड़ी देर के लिए।


2

npad का जवाब निश्चित रूप से मूल बातें देता है, इसलिए मैं उन चरणों को नहीं दोहराऊंगा, लेकिन यहां कई उत्तर हैं जो उपयोग करने का सुझाव दे रहे हैं rvm upgrade। मुझे पता है कि आरवीएम आपको विकल्प देता है, लेकिन यह थोड़ा खतरनाक है।

IMO, सुरक्षित और अधिक "rvm तरीका" पहले rvm installनए रूबी संस्करण के लिए है, फिर नए rvm gemset copyरत्न संस्करण के लिए अपने रत्न (ओं) को कॉपी करने के लिए कमांड का उपयोग करें , जैसे rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset। फिर आप आसानी से नव-कॉपी किए गए रत्न का उपयोग करने के लिए अपनी परियोजना को स्विच कर सकते हैं (मैं एक का उपयोग करने की सलाह देता हूं.rvmrc आपकी परियोजना निर्देशिका में फ़ाइल ) और देखें कि क्या आपका कोड विफल रहता है। यदि ऐसा होता है, तो पुराने माणिक संस्करण को वापस बदलना केवल रत्न को स्विच करने की बात है।

लेकिन भले ही आप रत्नों का उपयोग न करें (हालांकि मैं मानता हूं कि जब से आप इस प्रश्न पर रेल टैग करते हैं), का उपयोग rvm upgradeअप्रत्याशित विफलताओं को जन्म दे सकता है। और यदि आपका कोड टूट जाता है, तो अब आपको पुराने संस्करण को फिर से स्थापित करना होगा। बस थोड़ा और समय लें और इसे साफ तरीके से करें।


1

मुझे इसका अनुमान है rvm install 1.9.2-head

आप उपलब्ध माणिक के साथ देख सकते हैं rvm list known


होगा headनवीनतम पैच स्तर मिल सकता है? मैंने सोचा कि यह बहुत नवीनतम संस्करण के लिए था, जिसका अर्थ है कि यह अस्थिर और प्रयोगात्मक कुछ हो सकता है।
लैन

अहा, सच। मैंने नवीनतम और पैच स्तर मिलाया।
हेइक्की

1

यह ब्लॉग पोस्ट सहायक होनी चाहिए: http://pogodan.com/blog/2011/09/06/ruby-1-9-3-for-dementment

अनिवार्य:

rvm get head
rvm reload

wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched

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