जवाबों:
.gem
संकुल को स्थापित करने के बारे में आपके प्रश्न का यह कड़ाई से जवाब नहीं है, लेकिन आप अपने Gemfile को संपादित करके रत्न-के-रत्न के आधार पर सभी प्रकार के स्थान निर्दिष्ट कर सकते हैं ।
:path
विशेषता निर्दिष्ट करने से आपके स्थानीय मशीन पर उस पथ से मणि स्थापित हो जाएगा।gem "foreman", path: "/Users/pje/my_foreman_fork"
:git
विशेषता निर्दिष्ट करने से एक दूरस्थ गिट रिपॉजिटरी से रत्न स्थापित होगा।gem "foreman", git: "git://github.com/pje/foreman.git"
# ...or at a specific SHA-1 ref
gem "foreman", git: "git://github.com/pje/foreman.git", ref: "bf648a070c"
# ...or branch
gem "foreman", git: "git://github.com/pje/foreman.git", branch: "jruby"
# ...or tag
gem "foreman", git: "git://github.com/pje/foreman.git", tag: "v0.45.0"
(जैसा @ जुरहरा ने अपनी टिप्पणी में उल्लेख किया है ।)
gem "foreman", :git => "https://github.com/pje/foreman.git"
लगता है बंडल बॉक्स से बाहर .em फ़ाइलों का उपयोग नहीं कर सकता है। इंगित करता है: .gem फ़ाइलों वाली निर्देशिका के लिए पथ काम नहीं करता है। कुछ लोगों ने उस उद्देश्य के लिए एक स्थानीय रत्न सर्वर (जेमिनाबॉक्स, स्टिकलर) को सेटअप करने का सुझाव दिया।
हालाँकि, जो मुझे बहुत सरल लगा, वह है फ़ाइल सिस्टम से एक स्थानीय रत्न "सर्वर" का उपयोग करना: बस अपनी .gem फ़ाइलों को एक स्थानीय निर्देशिका में डालें, फिर इसे "जेम जनरेट_इंडेक्स" का उपयोग करके इसे एक रत्न भंडार बनाएं।
mkdir repo
mkdir repo/gems
cp *.gem repo/gems
cd repo
gem generate_index
अंत में अपने Gemfile के लिए निम्न पंक्ति जोड़कर इस स्थान पर बिंदु बंडलर करें
source "file://path/to/repo"
यदि आप रिपॉजिटरी में रत्नों को अपडेट करते हैं, तो सूचकांक को फिर से बनाना सुनिश्चित करें।
gem server
रहना चाहता था और न ही मैं संपूर्ण .gem फ़ाइल की मेजबानी करना चाहता था।
source "file://#{File.expand_path('.')}/chef-11.10.0.dev.2"
Could not fetch specs from file://Users/nakilon/....../
डिफ़ॉल्ट रूप से Bundler आपके सिस्टम को पहले चेक करेगा और यदि यह एक रत्न नहीं मिल सकता है तो यह आपके Gemfile में निर्दिष्ट स्रोतों का उपयोग करेगा।
आप बंडल को "बंडल पैकेज" और "बंडल इंस्टॉल - लॉकल" का उपयोग करके तैनात किए गए रत्नों का उपयोग करने के लिए बाध्य कर सकते हैं
आपकी विकास मशीन पर:
bundle install
(आवश्यक रत्न स्थापित करता है और Gemfile.lock बनाता है)
bundle package
(विक्रेता / कैश में रत्न कैश करता है)
सर्वर पर:
bundle install --local
(- एकल का अर्थ है "विक्रेता / कैश से रत्न का उपयोग करें")
bundle install
उसके बाद, मणिभ को विक्रेता / कैश को कॉपी करें , मणि को वापस मणि में जोड़ें और निष्पादित करें bundle install --local
bundle package
एक बढ़िया सुझाव है, अब भी, तीन साल बाद। यदि आपका बुंडलर का संस्करण 2.0 से अधिक पुराना है (अभी तक इस लेखन में जारी नहीं किया गया है), bundle package --all
तो आपको रत्नों path
या git
निर्भरता के साथ रत्नों को शामिल करना होगा । हालांकि यह आपको इस तरह की निर्भरता का पता लगाने में एक सहायक अनुस्मारक देगा।
--local
डॉक्स के अनुसार : "ध्यान दें कि अगर rubygems.org पर एक उपयुक्त प्लेटफ़ॉर्म-विशिष्ट रत्न मौजूद है तो यह नहीं मिलेगा।"
काम करने के .gem
लिए जोड़ने vendor/cache
लगता है। में कोई विकल्प की आवश्यकता नहीं है Gemfile
।
मुझे अपना स्वयं का मणि सर्वर चलाने में सबसे आसान लगा geminabox
इन सरल निर्देशों को देखें ।