मैं विंडोज 7 पर रूबी 2.1 और रेल 4.1 का उपयोग कर रहा हूं। जब भी मैं bundle install
चलाता हूं, तो सभी रत्न सिस्टम पथ c:/Ruby21/lib/ruby/gems/2.1.0/gems/
में स्थापित होते हैं। मुझे अपनी परियोजना में vendor
निर्देशिका भी मिली।क्या मुझे सिस्टम रिपोजिटरी (वैश्विक रूप से) या प्रोजेक्ट विक्रेता/बंडल (स्थानीय रूप से) में रूबी रत्न स्थापित करना चाहिए?
पीएचपी composer और node.js npm पृष्ठभूमि से आ रहा है, सभी निर्भरता स्थानीय स्तर पर परियोजना vendor
फ़ोल्डर या node_modules
फ़ोल्डर में स्थापित किया जाना चाहिए। तो, मेरे प्रश्न हैं:
- क्या मुझे सिस्टम पथ या
vendor/bundle
में रत्न स्थापित करना चाहिए? - यदि सभी रत्न या कुछ रत्न सिस्टम पथ में स्थापित किए जाने चाहिए, तो यह उत्पादन वातावरण को कैसे प्रभावित कर सकता है जहां मेरे पास खोल का उपयोग नहीं हो सकता है?
- क्या सभी रत्न या विशिष्ट रत्न
vendor/bundle
में स्थापित किए जाने चाहिए? - मैं
vendor/bundle
में रत्न कैसे स्थापित कर सकता हूं?
मुझे लगता है कि यह थोड़ा बुरी तरह से सूचित किया गया है कि 'बंडल निष्पादन' की आवश्यकता है और इसकी आवश्यकता क्यों है, इसलिए लोगों को आम तौर पर लगता है कि परियोजना फ़ोल्डर में निर्भरता स्थापित की जानी चाहिए। इसके अलावा, अधिकांश अन्य पैकेज प्रबंधक (संगीतकार, एनपीएम, बोवर, आदि) ऐसा करते हैं, इसलिए विभिन्न आम पैटर्न भी भ्रमित हो सकते हैं। –
मुझे इस बिंदु के बारे में समझ में नहीं आता है "आपको जवाब में हमेशा 'बंडल exec'' के साथ मणि कमांड को प्रीपेड करना चाहिए। – Sithu
@ सिथु देखें [यह प्रश्न और उत्तर] (http://stackoverflow.com/questions/6588674/what-does-bundle-exec-rake-mean)। संक्षेप में, यह सुनिश्चित करता है कि जब आप एक मणि से कमांड निष्पादित करते हैं, तो आपके Gemfile में परिभाषित सही संस्करण कहा जाता है। यह महत्वपूर्ण है यदि आपके पास सिस्टम में स्थापित एक ही मणि के कई संस्करण हैं। एक नियम के रूप में, हर बार जब आप अपनी परियोजना के संदर्भ में एक आदेश निष्पादित करते हैं, तो आपको इसे 'बंडल निष्पादन' के साथ पूर्ववत करना चाहिए। – p4sh4