जवाबों:
यदि आप बंडलर का उपयोग कर रहे हैं, तो आपको अपने जेमफाइल में कुछ इस तरह जोड़ना होगा:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
और अगर .gemspec
फ़ाइल है, तो इसे चलाने के लिए मणि को लाने और स्थापित करने में सक्षम होना चाहिए bundle install
।
युपीडी। जैसा कि टिप्पणियों में संकेत दिया गया है, बुंडलर के ठीक से काम करने के लिए आपको निम्नलिखित को भी जोड़ना होगा config.ru
:
require "bundler"
Bundler.setup(:default)
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
:। akash.im/2012/06/05/bundler-new-github-option.html
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- :tag => ''
हिस्सा
अच्छी तरह से, यह परियोजना पर निर्भर करता है। कुछ प्रोजेक्ट्स की रूट डायरेक्टरी में एक .gemspec फाइल है। उस मामले में, यह होगा
gem build GEMNAME.gemspec
gem install gemname-version.gem
अन्य परियोजनाओं में एक रेक कार्य होता है, जिसे "रत्न" या "बिल्ड" या ऐसा कुछ कहा जाता है, इस मामले में आपको "रेक" को लागू करना होगा, लेकिन यह परियोजना पर निर्भर करता है।
दोनों ही मामलों में आपको स्रोत डाउनलोड करना होगा।
gemname-version.gem
फ़ाइल जब लागू बनाई गई हैgem build
gem install gemname-version.gem
कमांड स्थानीय रूप से गिट रत्न को कहां स्थापित करता है? मैं अपने स्थानीय मशीन में कहीं भी नहीं जा सकता कि एक इंजन मणि इस तरह से स्थापित हो। बंडलर इसे कहाँ छुपाता है?
gem install gemname-version.gem
लाइनgem install --local gemname-version.gem
gem which gemname
यह बताना चाहिए कि एक विशिष्ट रत्न कहां है, क्या यह आपके लिए काम नहीं करता है?
प्रयास करें specific_install आप, या एक मनमाना URL से अपने GitHub भंडार (जैसे 'किनारे') से से एक रत्न स्थापित करने के लिए मणि यह आप की अनुमति देता है। रत्नों को फोर्क करने और कई मशीनों और उन पर हैकिंग के लिए बहुत उपयोगी है।
gem install specific_install
gem specific_install -l <url to a github gem>
जैसे
gem specific_install https://github.com/githubsvnclone/rdoc.git
specific_install
मणि पर अधिक स्पष्टीकरण जोड़ सकते हैं ?
ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
बहुत अच्छा लगता है, लेकिन मैं इसे आगे नहीं देखूंगा। बस यह पोस्ट करना चाहता था कि यह मेरे लिए काम नहीं करता था, जब कोई और एसओ की सिफारिश के आधार पर इसे पूरा करने वाला हो।
बुंडलर आपको गिट रिपॉजिटरी से सीधे रत्नों का उपयोग करने की अनुमति देता है। अपने जेमफाइल में:
# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'
# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com:dideler/foo.git', branch: 'development'
# Shorthand for public repos on GitHub (supports all the :git options)
gem 'foo', github: 'dideler/foo'
अधिक जानकारी के लिए, https://bundler.io/v2.0/guides/git.html देखें
bundle
, ऐसे git-gem- निर्भरता विश्व स्तर पर नहीं बल्कि वर्तमान उपयोगकर्ता के होम डायरेक्टरी में स्थापित की जाएगी। यात्री आपके वेब-सर्वर के उपयोगकर्ता (उदा www-data
) के रूप में माणिक चलाएगा जिसकी इस निर्देशिका तक कोई पहुंच नहीं है और इसलिए यह "गिट-मणि" लोड नहीं किया जाएगा। आपको एक त्रुटि मिलेगी ... is not yet checked out. Run bundle install first
।
OBSOLETE (टिप्पणियां देखें)
यदि प्रोजेक्ट github से है, और http://gems.github.com/list.html पर सूची में समाहित है , तो आप इसे स्थापित करने के लिए केवल रत्न स्रोतों में github रेपो जोड़ सकते हैं:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
यदि आप एक सार्वजनिक GitHub भंडार से अपने रत्न प्राप्त कर रहे हैं, तो आप आशुलिपि का उपयोग कर सकते हैं
gem 'nokogiri', github: 'tenderlove/nokogiri'
इसके अलावा आप कर सकते हैं gem install username-projectname -s http://gems.github.com
अपने Gemfile में, निम्नलिखित जोड़ें:
gem 'example', :git => 'git://github.com/example.git'
आप रेफरी, शाखा और टैग विकल्प भी जोड़ सकते हैं,
उदाहरण के लिए यदि आप किसी विशेष शाखा से डाउनलोड करना चाहते हैं:
gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"
फिर भागो:
bundle install
यदि आप gryzzly द्वारा सुझाए गए अनुसार बंडलर का उपयोग कर स्थापित करते हैं और मणि एक बाइनरी बनाता है, तो सुनिश्चित करें कि आप इसे चलाते हैं bundle exec mygembinary
क्योंकि मणि एक बंडलर निर्देशिका में संग्रहीत होता है जो सामान्य मणि पथ पर दिखाई नहीं देता है।
एक ताजा लिनक्स मशीन पर आपको भी इंस्टॉल करना होगा git
। बंडल पर्दे के पीछे इसका उपयोग करता है।
require "bundler" Bundler.setup(:default)
देखें बंडलर डॉक्स अधिक जानकारी के लिए