मैं स्थानीय रत्न कैसे स्थापित कर सकता हूं?


342

यदि मैं अपने कंप्यूटर में एक फ़ोल्डर में .gem फ़ाइल डाउनलोड करता हूं, तो क्या मैं इसे बाद में उपयोग करके स्थापित कर सकता हूं gem install?


जवाबों:


288

हाँ, जब आप ऐसा करते हैं gem install, तो यह वर्तमान निर्देशिका को पहले खोजेगा, इसलिए यदि आपकी .gem फ़ाइल वहाँ है, तो वह उसे उठा लेगा। मुझे यह मणि संदर्भ पर मिला , जिसे आप भी देख सकते हैं:

रत्न स्थापित नाम रत्न स्थापित करेगा। यह एक स्थानीय इंस्टालेशन (अर्थात वर्तमान डायरेक्टरी में एक .gem फ़ाइल) का प्रयास करेगा, और यदि वह विफल हो जाता है, तो यह आपके द्वारा इच्छित मणि के सबसे हाल के संस्करण को डाउनलोड और इंस्टॉल करने का प्रयास करेगा।


2
लिंक अनंत रीडायरेक्ट में समाप्त होता है :(
तोह्वरी

2
यह कहते हुए जाँचना कि यह मेरे लिए 2019 में काम कर रहा है।
चार्ल्स वुड

1
मेरे पास फाइल Gemfileनहीं है .gem। तो यह .gemफाइल क्या है ? इसमें क्या होना चाहिए? - रुको - मैं देखता हूं। आप एक gem-name.gemफ़ाइल का मतलब है । याद रखें कि यूनिक्स पर फ़ाइल का '' से शुरू होना बहुत सामान्य है। तो यह बेहतर है इसे बाहर वर्तनी।
मार्टिन

मैं 2020 के भविष्य से पुष्टि कर सकता हूं, लिंक मेरे लिए काम करता है। मामले में यह दूर के भविष्य में काम नहीं करता है, यहाँ संग्रहीत है । 19 अप्रैल, 2020 स्नैपशॉट
जेड बर्क

329

इसके अलावा, आप उपयोग कर सकते हैं gem install --local path_to_gem/filename.gem

यह सामान्य मणि भंडार स्कैन को छोड़ देगा जो तब होता है जब आप छोड़ देते हैं --local

आप के साथ अन्य जादू पा सकते हैं gem install --help


मैं ज़िप प्रारूप में माणिक जैसे रत्न डाउनलोड करता हूं। इसलिए यहाँ कोई .gem फ़ाइल नहीं है। मैं इसे स्थानीय से कैसे स्थापित करूं? धन्यवाद।
एर्रान मोराद

3
@BoratSagdiyev, एक ज़िप फ़ाइल एक मणि नहीं है। अधिकांश ज़िप फ़ाइलों की तरह, आपको इससे बहुत कुछ करने से पहले इसे अनज़िप करना होगा। यदि इसमें एक मणि है, तो आप निकाले गए .gem फ़ाइल पर मणि स्थापित का उपयोग कर सकते हैं। मुझे मणि प्रारूप के इंटर्नल याद नहीं हैं; यह संभव है कि यह केवल एक विशेष शीर्ष लेख के साथ एक ज़िप फ़ाइल हो सकती है, लेकिन माणिक इस तरह से ज़िप फ़ाइलों को नहीं पहचानते हैं।
जेसनट्र्यू

62

आप अपनी मणि फ़ाइल में पूरा फ़ाइल नाम भी उपयोग कर सकते हैं :

gem install /full/path/to/your.gem

यह भी काम करता है - यह शायद सबसे आसान तरीका है


38

यदि आप अपने रत्नों को बंडल के साथ बनाते हैं:

# do this in the proper directory
bundle gem foobar

उनके लिखे जाने के बाद आप उन्हें रेक के साथ स्थापित कर सकते हैं:

# cd into your gem directory
rake install

संभावना है, कि आपके डाउनलोड किए गए मणि को rake installभी पता चल जाएगा ।


3
यह सबसे अच्छा आधुनिक उत्तर लगता है। स्वीकृत उत्तर 8 वर्ष पहले से है
साठवाँ

14

यदि आप प्रोजेक्ट फ़ाइल को github या अन्य scm होस्ट साइट से डाउनलोड करते हैं, तो पहले प्रोजेक्ट बनाने के लिए रत्न बिल्ड का उपयोग करें, ताकि आप वर्तमान निर्देशिका में जो भी फ़ाइल प्राप्त कर सकें। तब मणि इसे स्थापित करें!


13

यदि आप एक रत्न के स्थानीय रूप से संशोधित कांटा पर काम करना चाहते हैं, तो ऐसा करने का सबसे अच्छा तरीका है

gem 'pry', path: './pry'

एक रत्न में।

... जहाँ ./pryआपके भंडार का क्लोन होगा। बस bundle installएक बार चलाएं , और आपके द्वारा किए गए रत्न स्रोतों में कोई भी बदलाव तुरंत परिलक्षित होता है। इसके साथ gem install pry/pry.gem, स्रोत अभी भी स्थानांतरित किए गए हैं GEM_PATHऔर आपको हमेशा परीक्षण bundle gem pryऔर gem updateपरीक्षण दोनों चलाने होंगे ।


5

उस मार्ग पर जाएं जहां मणि है और बुलाओ gem install -l gemname.gem


0

खैर, यह मेरी DRY स्थापना है:

  1. कैश डायरेक्ट्री में पहले से स्थापित रत्नों के साथ एक कंप्यूटर में देखें (डिफ़ॉल्ट रूप से [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  2. सभी "कॉपी *.gemsखुद मणि कैश जगह में जवाहरात के बिना एक कंप्यूटर पर फ़ाइलें" (डिफ़ॉल्ट रूप से पहला कदम का एक ही संरक्षक पथ: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  3. कंसोल में रत्न कैश (सीडी [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) में स्थित होना चाहिए और आग लगा सकते हैं gem install anygemwithdependencieshere(उदाहरण के लिए cucumber-2.99.0)

यह डीआरवाई है क्योंकि किसी भी मणि को स्थापित करने के बाद, डिफ़ॉल्ट रूबिजम द्वारा मणि फ़ाइल को कैश मणि निर्देशिका में डाल दिया जाता है और यह समझ में नहीं आता है कि डुप्लिकेट थैला फाइलें, यह अधिक आसान है यदि आप चाहते हैं कि दोनों कंप्यूटरों में एक ही संस्करण हो (या पैरानोइक सुरक्षा नियमों के अनुसार: v)

संपादित करें: रूबी या रूबीज के कुछ संस्करणों में, यह काम नहीं करता है और अलर्ट या त्रुटि नहीं करता है, आप अन्य जगह पर रत्नों को रख सकते हैं, लेकिन डीआरवाई नहीं प्राप्त कर सकते हैं, अन्य विकल्प लॉन्च एकीकृत कमांड का उपयोग कर रहे हैं gem serverऔर मणि स्रोतों में लोकलहोस्ट यूआरएल को जोड़ सकते हैं, अधिक जानकारी में: https://guides.rubygems.org/run-your-own-gem-server/


0

आप https://rubygems.org/gems/ से रत्न डाउनलोड कर सकते हैं या बंडल और रैक के माध्यम से स्थानीय रत्न बना सकते हैं।

उदाहरण के लिए:

  • बंडल मणि yourGemName
  • रेक स्थापित करें

वास्तविक रत्न स्थापित करने से पहले निर्भरता स्थापित करने का ध्यान रखें।

  • मणि स्थापित - लोकोपकार / टोथ फोल्डर / XXXx-2.6.1.gem

नोट: यदि धाराप्रवाह td- एजेंट और रूबी का उपयोग एक ही मशीन पर किया जाता है। कृपया td-Agent के td-Agent-gem कमांड का उपयोग करना सुनिश्चित करें। td- एजेंट की अपनी रूबी है।

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