RVM के साथ प्रोजेक्ट रत्न सेट करने के लिए rvmrc या रूबी-संस्करण फ़ाइल का उपयोग करें?


230

मैं अपने प्रत्येक रेल प्रोजेक्ट के लिए रूबी संस्करण और रत्नों के सेट के लिए आरवीएम, रूबी संस्करण प्रबंधक का उपयोग करता हूं।

.rvmrcजब भी मैं cdप्रोजेक्ट डायरेक्टरी में होता हूं, मेरे पास रूबी वर्जन और जेवरात का चयन करने के लिए एक फाइल होती है ।

आरवीएम 1.19.0 स्थापित करने के बाद, मुझे एक संदेश मिलता है

आप उपयोग कर रहे हैं .rvmrc, इसमें विश्वास करने की आवश्यकता है, यह धीमा है और यह अन्य रूबी प्रबंधकों के साथ संगत नहीं है, आप इस चेतावनी .ruby-versionका उपयोग rvm rvmrc to [.]ruby-versionया अनदेखा कर सकते हैं rvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc, .rvmrcRVM 1 और RVM 2 में डिफ़ॉल्ट प्रोजेक्ट फ़ाइल को अनदेखा करते रहेंगे। सभी फाइलों के लिए चेतावनी rvm rvmrc warning ignore all.rvmrcs

क्या मुझे अपनी .rvmrcफ़ाइल का उपयोग जारी रखना चाहिए या क्या मुझे किसी .ruby-versionफ़ाइल पर स्विच करना चाहिए ? कौन सा इष्टतम है? क्या प्रभाव हैं?

जवाबों:


372

यदि आपकी .rvmrcफ़ाइल में कस्टम शेल कोड है, तो .rvmrcइसका उपयोग जारी रखें क्योंकि यह आपको किसी भी शेल कोड को शामिल करने की अनुमति देता है।

यदि आपका एकमात्र उद्देश्य रूबी संस्करणों को स्विच करना है, तो वह उपयोग करें .ruby-versionजो अन्य रूबी संस्करण स्विचर जैसे कि rbenv या chububy द्वारा समर्थित है । इस फ़ाइल पर भी भरोसा करने की आवश्यकता नहीं है क्योंकि यह केवल रूबी संस्करण का नाम है और इसे किसी भी तरह से निष्पादित नहीं किया जाएगा।

यदि आप उपयोग .ruby-versionकरते हैं तो आप @gemsetफ़ाइल में शामिल कर सकते हैं लेकिन यह अन्य स्विचर के साथ संगत नहीं होगा। अनुकूलता बनाए रखने के लिए एक अलग फ़ाइल में रत्न नाम का उपयोग करें .ruby-gemsetजिसे अन्य उपकरणों द्वारा अनदेखा किया जाता है (यह केवल एक साथ काम करता है .ruby-version)

उदाहरण के लिए, यदि आपके पास एक सरल है .rvmrc:

rvm use 1.9.3@my-app

इसे निम्न में बदला जा सकता है .ruby-version:

1.9.3

और .ruby-gemset:

my-app

.rvmrcफ़ाइल को निकालना सुनिश्चित करें क्योंकि यह किसी अन्य प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइलों पर पूर्वता लेता है:

rm .rvmrc

9
ध्यान दें कि सभी एप्लिकेशन अभी तक नए .ruby-version और .ruby-gemet फ़ाइलों का समर्थन नहीं करते हैं लेकिन केवल .rvmrc हैं। (विशेष रूप से रूबीमाइन)। यह निश्चित रूप से आपकी पसंद को प्रभावित करेगा कि क्या नई प्रणाली में जाना है। मैंने पहले ही एक उत्तर में इस बात की ओर इशारा कर दिया था क्योंकि इसे नीचे ट्रैक करने में मुझे बहुत समय लगा। हालाँकि मेरा जवाब किसी कारण से हटा दिया गया था ..
जियोर्जियो

2
क्या इस पर किसी "आधिकारिक" दस्तावेज का लिंक है? मैंने यह देखना शुरू कर दिया कि यह आरवीएम साइट में कैसे काम करता है, लेकिन अभी कुछ अस्पष्ट उल्लेख नई rvmrc फ़ाइल के रूप में मिला है लेकिन यह कैसे काम करना चाहिए, इसके बारे में कुछ नहीं।
eirc

2
यह पूरी तरह से प्रलेखित नहीं है, लेकिन यहाँ हम पहले से ही rvm.io/workflow/projects/#ruby-versions
mpapis

4
बस 1.9.3-p194 को .ruby- संस्करण में मेरे लिए काम न करें। उपरोक्त दस्तावेज़ देखें, rvm --create --ruby-version use 1.9.3-p194कार्य करें, और अंदर की सामग्री वास्तव में हैruby-1.9.3-p194
जिंझो हुओ

2
RubyMine के वर्तमान संस्करण .ruby- संस्करण शैली का समर्थन करते हैं। 6.3.2 के साथ पुष्टि कर सकते हैं
बीपडॉग

76

.Rvmrc से .ruby-version + .ruby-gemet पर स्विच करने का त्वरित और आसान तरीका

rvm rvmrc to .ruby-version

1
सच है, लेकिन यह चारों ओर [] डालता है। किसी कारण से जो मुझे समझ नहीं आया। (शायद यह एक ऐसा सम्मेलन है, जिससे मैं अपरिचित हूं।) मैंने वास्तव में संदेश को देखा और मुझे यह उत्तर मिला क्योंकि अजीबोगरीब फॉटिंग और [] ने मुझे अनिश्चित बना दिया कि वास्तव में क्या चलाना है।
zem

2
@zem [] [.]ruby-versionइंगित करता है कि डॉट वैकल्पिक है ; वर्गाकार कोष्ठक वैकल्पिकता को इंगित करने के लिए एक सामान्य सम्मेलन है (सामान्य तौर पर, माणिक में नहीं।) इसलिए आप बिना डॉट के "रूबी-संस्करण" नामक एक फ़ाइल का उपयोग कर सकते हैं, और इसका उपयोग भी किया जाएगा। यह उपयोगी हो सकता है यदि आप सिस्टम पर फ़ाइल की अधिक दृश्यता चाहते हैं जो डिफ़ॉल्ट रूप से "डॉट फाइलें" छिपाते हैं। मैं मानता हूं कि यह स्पष्ट नहीं है, हालांकि।
मैट गिब्सन

यह कहता हैCould not load .rvmrc
अब्दुल्लाह

4

यदि आप कुछ इस तरह से कमांड का उपयोग कर सकते हैं, तो आप कुछ समय के लिए फ़ाइल .ruby-versionऔर .ruby-gemsetफ़ाइल बनाना चाहते हैं :

rvm use 2.1.1@nancy --create

rvm --create --ruby-version 2.1.1@nancy

2

आप दोनों को आजमा सकते हैं। अपनी परियोजना की जड़ पर जाएं, एक .rvmrc फ़ाइल ( touch .rvmrc) बनाएं , फिर संपादित करें rvm use 2.0.0-p451@your_gemset(आपका रूबी संस्करण और रत्न नाम)। इस फ़ाइल को सहेजने के बाद, आप यह कमांड टाइप कर सकते हैं:

cd ../your_project(आप your_project निर्देशिका में हैं), और .rvmrc में स्क्रिप्ट निष्पादित करेंगे।

आरवीएम माणिक-संस्करण का उपयोग करने की सलाह देते हैं। आप .rvmrc से .ruby-version पर स्विच करने के लिए इस कमांड को चला सकते हैं

rvm rvmrc to .ruby-version

यह क्या करता है 2 फ़ाइलों का नाम है .ruby- संस्करण , और .ruby-gemet और इस पंक्ति को जोड़ें

ruby-2.0.0-p451 .ruby-version

your_gemset in। रबी-रत्न

आप इसे मैन्युअल रूप से करने की कोशिश कर सकते हैं यदि आप चाहते हैं :)


0

Rvm का उपयोग कर स्थापित करें:

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

विभिन्न रूबी संस्करण स्थापित करें:

rvm install 1.8.7
rvm install 1.9.2

विशिष्ट माणिक संस्करण पर स्विच करें। उदाहरण के लिए, 1.8.7:

rvm use 1.8.7

एक रत्न बनाने के लिए:

rvm gemset create project_gemset

और एक रत्न का उपयोग करने के लिए:

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