2011-01-05 15 views
63

मैंने इसे फिर से पूछने से पहले "Relationships between Rubygems, Bundler, and RVM" पढ़ा।रूबीजम्स, बंडलर और आरवीएम भ्रम

वैसे, इस तरह के कई प्रश्न हैं, लेकिन जिन लोगों ने उत्तर दिया कि वे रूबीगेम्स, आरवीएम और बंडलर के साथ काम करते हैं, और उन्होंने यह नहीं बताया है कि इनमें से प्रत्येक कार्य अलगाव में कैसे काम करता है।

मैं वास्तव में उलझन में हूं कि जब हम रत्न स्थापित कर रहे हैं तो अलगाव में तीन काम कैसे करते हैं। कृपया मुझे बताएं कि आप कैसे काम करते हैं, जो मेरी मदद करेगा, लेकिन मैं नहीं सीखूंगा कि जब हम उनके साथ खेलते हैं तो क्या हो रहा है।

मेरा भ्रम इन सवालों में विभाजित किया जा सकता है। एक मणि कहाँ स्थापित किया जाता है जब:

  1. मेरे पास रूबीगेम्स (आरवीएम या बंडलर के बिना) है?
  2. रूबीगेम्स और आरवीएम स्थापित हैं?
  3. रूबीगेम्स, आरवीएम और बंडलर स्थापित हैं?

कृपया मुझे इस सामग्री को वेब पर या अपने विस्तृत उत्तरों के साथ समझने में सहायता करें।

उत्तर

38
  1. यह पता लगाने के लिए कि जहां रत्न स्थापित किए जा रहे हैं, टर्मिनल में echo $GEM_HOME चलाएं।
  2. आरवीएम का उपयोग करते समय, रत्न आपके आरवीएम इंस्टॉल में स्थापित होते हैं क्योंकि यह $ GEM_HOME बदलता है। चल रहा है echo $GEM_HOME अब आपके आरवीएम इंस्टॉल में एक रास्ता दिखाएगा।
  3. जब बंडलर मिश्रण में जोड़ा जाता है, तो रत्न या तो $GEM_HOME में स्थापित किया जाएगा, या यदि आप bundle install चलाते समय पथ निर्दिष्ट करते हैं तो उस पथ पर स्थापित किया जाएगा। बंडलर के माध्यम से एक मणि कहां है यह जानने के लिए आप अपना पूरा पथ प्राप्त करने के लिए bundle show gemname का उपयोग कर सकते हैं।
+7

# 2 रनिंग 'आरवीएम जानकारी' के लिए fyi भी उपयोगी है - वर्तमान में उपयोग में आने वाले पूरे रूबी + रूबीगेम्स पर्यावरण को प्रिंट करता है। – ffoeg

4

प्रत्येक संदर्भ में मणि पथ सूचीबद्ध करने के लिए gem env का उपयोग करें।

बिना आरवीएम gem env सिस्टम मणि लाइब्रेरी पथ की रिपोर्ट करेगा।

RVM gem env के साथ RVM- प्रबंधित मणि लाइब्रेरी पथ की रिपोर्ट करेगा।

बंडलर एप्लिकेशन निर्भरता प्रबंधित करता है और आपके पर्यावरण में मणि पुस्तकालय में स्थापित करता है। यदि आप आरवीएम + बंडलर का उपयोग कर रहे हैं, तो रत्न आरवीएम प्रबंधित मणि निर्देशिकाओं में स्थापित किए जाएंगे। यदि आप इसका उपयोग आरवीएम के बिना कर रहे हैं, तो बंडलर सिस्टम मणि निर्देशिकाओं में रत्न स्थापित करेगा।

0

मैं यह समझने की भी कोशिश कर रहा हूं कि यह कैसे काम करता है। ब्लॉग "Advice on using Ruby, RVM, Passenger, Rails, Bundler, … in development" ने मुझे बेहतर अवलोकन करने में मदद की।

बीटीडब्ल्यू, यह एक फ्रेंच लेख का अनुवाद है, फ्रेंच संस्करण बेहतर है।

0

पथ जहाँ एक रत्न उपयोग स्थापित किया गया है खोजने के लिए:

gem which gem_name 

(html2haml की तरह) निष्पादनयोग्य लगाने के लिए उपयोग करें:

which executable_name 

bundle exec html2haml जो Bundler टीम द्वारा की सिफारिश की है टाइपिंग बचने के लिए, मेरे rubygems-bundler मणि का उपयोग करें।

संबंधित मुद्दे