2015-07-23 7 views
13

मेरे पास उपयोग की जाने वाली साझा मशीन पर सीमित विशेषाधिकार हैं, इसलिए मैं जिस तरह से उपयोग किया जाता हूं, मैं रत्न इंस्टॉल नहीं कर सकता। उदाहरण के लिए:स्थानीय फ़ोल्डर में मणि इंस्टॉल करें

$ gem install request-log-analyzer 
ERROR: While executing gem ... (Gem::FilePermissionError) 
    You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory. 

यह एक मणि स्थानीय स्तर पर स्थापित करने के लिए संभव है? (अगर यह मायने रखती है, मैं this gem स्थापित करने के लिए कोशिश कर रहा हूँ।)

मैं उस बंडलर या gemfiles का उपयोग कर के बारे में बात स्टैक ओवरफ़्लो पर पद दिया जाना देखा था, लेकिन मैं एक रूबी ऑन रेल्स परियोजना के लिए इस रत्न को स्थापित नहीं कर रहा हूँ - मैं बस अलगाव में इसका इस्तेमाल करना चाहते हैं।

मैं लिनक्स चला रहा हूं, यह सुनिश्चित नहीं करता कि कौन सा स्वाद है।

उत्तर

15

को --local झंडा जोड़े अपने को स्थापित:

gem install --local request-log-analyzer 

हैं कि किसी भी समस्याओं का कारण बनता है, मणि मैन्युअल डाउनलोड करने और इसे करने के लिए सीधे gem ओर इशारा करते हुए का उपयोग करके देखें: यदि आप स्थापित करना चाहते हैं

gem install --local path/to/gem/filename.gem 

यह अपने उपयोगकर्ता घर के लिए, के रूप में rubygems प्रति:

जब आप --user-install विकल्प का उपयोग करते हैं, तो RubyGems आपके होम निर्देशिका के अंदर एक निर्देशिका में रत्न स्थापित करेगा, ~/.gem/ruby ​​/ 1.9.1 जैसे कुछ। इंस्टॉल किए गए रत्नों द्वारा प्रदान किए गए आदेश ~/.gem/ruby ​​/ 1.9.1/bin में समाप्त हो जाएंगे। आपके लिए उपलब्ध होने के लिए स्थापित प्रोग्रामों के लिए, आपको अपने पाथ पर्यावरण चर में ~/.gem/ruby ​​/ 1.9.1/bin जोड़ने की आवश्यकता है।

इस के लिए आदेश सिर्फ होगा

gem install --user-install request-log-analyzer 
+0

जोड़कर "--force" ने मेरे लिए काम किया। मणि इंस्टॉल --force --local * .gem –

0

आप केवल आरवीएम: Ruby Version Manager का उपयोग कर सकते हैं। यह नोड संस्करण प्रबंधक (एनवीएम) और अन्य लोगों के साथ एक पूर्ण संस्करण प्रबंधक है, जिसमें यह आपको प्रत्येक परियोजना के लिए रूबी और विभिन्न रत्नों के विभिन्न संस्करणों की अनुमति देता है। यह एक दूसरे से और सिस्टम रूबी से अलग रत्नों को रखने का काम करता है, लेकिन एक पूर्ण संस्करण प्रबंधक सीखने की कीमत पर।

जब रूट के बिना चलाया जाता है, तो यह स्थानीय रूप से ~/.rvm में स्थापित होता है और अन्य उपयोगकर्ताओं को प्रभावित नहीं करता है।

+0

हम्म, वहाँ rvm की स्थापना के बिना यह करने के लिए एक तरीका है? चूंकि यह एक साझा कंप्यूटर है, इसलिए मैं उन चीज़ों की संख्या को कम करने की कोशिश कर रहा हूं जिन्हें मुझे इंस्टॉल करने की आवश्यकता है। –

+0

आरवीएम का लाभ किसी विशेषाधिकार की आवश्यकता नहीं है। आप इसे "हाथ से" कर सकते हैं लेकिन यह अधिक जटिल है .... अपने आप को बाश सेट करना, आदि – rholmes

+0

@ मचेजा आरवीएम बहुत अच्छा है और मैं आपको इसका उपयोग करने की सलाह दूंगा। लेकिन अगर आप नहीं चाहते हैं, तो मैंने स्थानीय रूप से स्थापित करने के लिए एक समाधान पोस्ट किया है। – jkeuhlen

26

आप कोशिश कर सकते हैं: gem install --user-install gem_name

+4

यह सही जवाब है, कम से कम रूबी 1.9.3 में। स्वीकृत उत्तर भ्रमित है क्योंकि यह - स्थानीय ध्वज और स्थानीय निर्देशिका में स्थानीय फ़ाइल से एक मणि स्थापित करने का उल्लेख करता है। – jdlourenco

+0

मुझे भी '-n ~/bin' विकल्प जोड़ना पड़ा क्योंकि यह अभी भी निष्पादन योग्य को '/ usr/local/bin'। पूर्ण में: 'मणि इंस्टॉल करें --user-install -n ~/bin gem_name'। –

संबंधित मुद्दे