मैंने पाया:
अद्यतन:
मैं Opscode बावर्ची तैनात करने के लिए (बावर्ची-एकल विशिष्ट होना)
वातावरण है का उपयोग ऐसा करने का तरीका। यहां स्पष्टीकरण दिया गया है:
बंडलर, डिफ़ॉल्ट रूप से पर्यावरण चर BUNDLE_PATH
द्वारा इंगित फ़ोल्डर में रत्न स्थापित करता है। BUNDLE_PATH
का डिफ़ॉल्ट मान vendor/bundle
है। इसलिए सभी रत्न /vendor/bundle
फ़ोल्डर में स्थापित हैं, जो एक निजी फ़ोल्डर (रेल अनुप्रयोग के प्रत्येक संस्करण के लिए) होता है। जब रेल अनुप्रयोग का एक नया संस्करण स्थापित होता है, vendor/bundle
मौजूद नहीं है। इसलिए बंडलर प्रत्येक मणि को स्थापित/प्रीकंपाइल करता है। यह vendor/cache
से रत्न उठाता है जो rubygems.org
से इसे डाउनलोड करने पर एक अच्छी बचत है, लेकिन यह अभी भी देशी एक्सटेंशन के संकलन से बच नहीं सकता है।
हम --path /shared/path
bundle install
कमांड लाइन पर जाकर इसे ओवरराइड कर सकते हैं। यह सुनिश्चित करेगा कि रत्न हमेशा /shared/path
में स्थापित होते हैं, जो सभी संस्करणों (रेल एप्लिकेशन के) के लिए सुलभ है।
इस दृष्टिकोण के साथ, बंडलर एक मणि को पुनः स्थापित/पुन: संकलित करने का प्रयास नहीं करेगा, क्योंकि यह पहले से ही इंस्टॉल हो गया है।
हां, तो यह जादू आदेश है कि मुझे
bundle install --local --deployment --path /shared/bundle --without development test
के लिए काम किया एक 'बंडल install' आमतौर पर जवाहरात उस बंडलर इन आवश्यकताओं से मेल खाते मिलते छोड़ देता है। तैनाती के लिए आप क्या उपयोग कर रहे हैं? –
@NeilSlater मैं तैनात करने के लिए महाराज का उपयोग करता हूं। – Litmus
मेरे पास सभी मूल एक्सटेंशन का उत्तर नहीं है, लेकिन क्या आपने 'NOKOGIRI_USE_SYSTEM_LIBRARIES = true' जोड़ने का प्रयास किया है? – zrl3dx