GitHub स्रोत से मणि कैसे स्थापित करें?


451

मैं नवीनतम GitHub स्रोत से मणि स्थापित करना चाहूंगा।

मैं यह कैसे करु?

जवाबों:


332

यदि आप बंडलर का उपयोग कर रहे हैं, तो आपको अपने जेमफाइल में कुछ इस तरह जोड़ना होगा:

gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'

और अगर .gemspecफ़ाइल है, तो इसे चलाने के लिए मणि को लाने और स्थापित करने में सक्षम होना चाहिए bundle install

युपीडी। जैसा कि टिप्पणियों में संकेत दिया गया है, बुंडलर के ठीक से काम करने के लिए आपको निम्नलिखित को भी जोड़ना होगा config.ru:

require "bundler" 
Bundler.setup(:default)

9
: मैं भी (मेरे config.ru को जोड़ा गया) निम्नलिखित जोड़ने के लिए की जरूरत require "bundler" Bundler.setup(:default)देखें बंडलर डॉक्स अधिक जानकारी के लिए
लुइस सेयर्स

40
इसके अतिरिक्त कोई भी उदाहरण के लिए Ref, Branch या टैग विकल्प निर्दिष्ट कर सकता हैgem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
अमित पटेल

25
वहाँ भी है gem 'redcarpet', github: 'tanoku/redcarpet':। akash.im/2012/06/05/bundler-new-github-option.html
एंड्रयू

@AmitPatel आपका बहुत बहुत धन्यवाद !!! : शाखा => 'yourbranch', आपकी इस लाइन ने मेरे लिए अभी एक बड़ी समस्या हल कर दी है। आपका बहुत आभारी हूं।
केएम रकीबुल इस्लाम

3
@gaussblurinc gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'<- :tag => ''हिस्सा
Mish Reyzlin

400

अच्छी तरह से, यह परियोजना पर निर्भर करता है। कुछ प्रोजेक्ट्स की रूट डायरेक्टरी में एक .gemspec फाइल है। उस मामले में, यह होगा

gem build GEMNAME.gemspec
gem install gemname-version.gem

अन्य परियोजनाओं में एक रेक कार्य होता है, जिसे "रत्न" या "बिल्ड" या ऐसा कुछ कहा जाता है, इस मामले में आपको "रेक" को लागू करना होगा, लेकिन यह परियोजना पर निर्भर करता है।

दोनों ही मामलों में आपको स्रोत डाउनलोड करना होगा।


2
साभार - सटीक उत्तर
जॉन शोनिंग

20
लोगों को यह बताने के लिए बस एक टिप कि यह वास्तव में क्या हो रहा है। gemname-version.gemफ़ाइल जब लागू बनाई गई हैgem build
देव की प्रतीक्षा में ...

gem install gemname-version.gemकमांड स्थानीय रूप से गिट रत्न को कहां स्थापित करता है? मैं अपने स्थानीय मशीन में कहीं भी नहीं जा सकता कि एक इंजन मणि इस तरह से स्थापित हो। बंडलर इसे कहाँ छुपाता है?
ग्रीन

2
मुझे लगता है कि gem install gemname-version.gemलाइनgem install --local gemname-version.gem
जॉनबॉन

@ गर्जन - आपको gem which gemnameयह बताना चाहिए कि एक विशिष्ट रत्न कहां है, क्या यह आपके लिए काम नहीं करता है?
उसी

255

प्रयास करें 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 

3
क्या आप specific_installमणि पर अधिक स्पष्टीकरण जोड़ सकते हैं ?
माइक्रोस्पिनो 14

1
यह वही है जो मैं देख रहा था, पायथन के पाइप गिट समर्थन के समान। मणि specific_install -l <glub पर प्रोजेक्ट करने के लिए url> एक आकर्षण की तरह काम किया!
मर्फ़

1
ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module बहुत अच्छा लगता है, लेकिन मैं इसे आगे नहीं देखूंगा। बस यह पोस्ट करना चाहता था कि यह मेरे लिए काम नहीं करता था, जब कोई और एसओ की सिफारिश के आधार पर इसे पूरा करने वाला हो।
isomorphismes

1
आपकी टिप्पणी के लिए @isomorphismes +1। मैंने उस त्रुटि के बारे में एक अलग प्रश्न यहाँ बनाया: stackoverflow.com/questions/27045874/…
ला-कोमाद्रेजा

1
यह एक जीवनरक्षक है! धन्यवाद महोदय।
नल्डोरिन

34

बुंडलर आपको गिट रिपॉजिटरी से सीधे रत्नों का उपयोग करने की अनुमति देता है। अपने जेमफाइल में:

# 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 देखें


शायद सबसे अच्छा जवाब
एंटोन सेमेनिचेंको

कृपया ध्यान दें कि यदि आप यात्री और अपाचे / ngix के साथ इस दृष्टिकोण का उपयोग करते हैं तो आप मुसीबत में पड़ सकते हैं। दौड़ते समय bundle, ऐसे git-gem- निर्भरता विश्व स्तर पर नहीं बल्कि वर्तमान उपयोगकर्ता के होम डायरेक्टरी में स्थापित की जाएगी। यात्री आपके वेब-सर्वर के उपयोगकर्ता (उदा www-data) के रूप में माणिक चलाएगा जिसकी इस निर्देशिका तक कोई पहुंच नहीं है और इसलिए यह "गिट-मणि" लोड नहीं किया जाएगा। आपको एक त्रुटि मिलेगी ... is not yet checked out. Run bundle install first
फिशबोन

16

OBSOLETE (टिप्पणियां देखें)

यदि प्रोजेक्ट github से है, और http://gems.github.com/list.html पर सूची में समाहित है , तो आप इसे स्थापित करने के लिए केवल रत्न स्रोतों में github रेपो जोड़ सकते हैं:

$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname

1
ओ रली? मैं बस अब यह किया है और यह काम किया ... जवाहरात करने के लिए जाओ। github.com इससे पहले कि मुझे लगता है कि सूत्रों को जोड़ने के लिए लगता है? (लेकिन sudo का उपयोग न करें)
esharp

7
@ केशर, वे उन लोगों की मेजबानी करते हैं जिन्हें उन्होंने बनाया था, लेकिन वे अब उनका निर्माण नहीं करते हैं। यदि मणि 2009 के बाद से अद्यतन हो गई , तो एक रत्न। Github.com प्रतिलिपि अप्रचलित हो जाएगी।
तोबू

13

यदि आप एक सार्वजनिक GitHub भंडार से अपने रत्न प्राप्त कर रहे हैं, तो आप आशुलिपि का उपयोग कर सकते हैं

gem 'nokogiri', github: 'tenderlove/nokogiri'

4

इसके अलावा आप कर सकते हैं gem install username-projectname -s http://gems.github.com


6
अप्रचलित है, अन्य उत्तर की टिप्पणियों को देखें।
ली हम्बले

1
फिर भी एक पुराने कोड आधार के साथ समस्या के लिए मेरी मदद की। हाँ, इसके 2013 और मैं एक रेल 2.3.4 परियोजना पर काम कर रहा हूँ।
विवेक संप्रदाय

4

अपने Gemfile में, निम्नलिखित जोड़ें:

gem 'example', :git => 'git://github.com/example.git'

आप रेफरी, शाखा और टैग विकल्प भी जोड़ सकते हैं,

उदाहरण के लिए यदि आप किसी विशेष शाखा से डाउनलोड करना चाहते हैं:

gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"

फिर भागो:

bundle install

3

यदि आप gryzzly द्वारा सुझाए गए अनुसार बंडलर का उपयोग कर स्थापित करते हैं और मणि एक बाइनरी बनाता है, तो सुनिश्चित करें कि आप इसे चलाते हैं bundle exec mygembinaryक्योंकि मणि एक बंडलर निर्देशिका में संग्रहीत होता है जो सामान्य मणि पथ पर दिखाई नहीं देता है।


2

एक ताजा लिनक्स मशीन पर आपको भी इंस्टॉल करना होगा git। बंडल पर्दे के पीछे इसका उपयोग करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.