2009-05-26 14 views
7

मुझे उस सर्वर पर लिखी गई रूबी स्क्रिप्ट्स का एक गुच्छा चलाने की ज़रूरत है, जिसमें मेरे पास सुडो पहुंच नहीं है।
अपनी मशीन पर, मैंने 'सूडो मणि इंस्टॉल ..' का उपयोग करके रत्नों का एक गुच्छा स्थापित किया है और उन्हें मेरे कोड में इस्तेमाल किया है ..
क्या कोई ऐसी व्यवस्था है जो मुझे इन रत्नों को औपचारिक रूप से रिमोट पर इंस्टॉल किए बिना उपयोग करने देगी मशीन?इसे इंस्टॉल किए बिना एक मणि का उपयोग

उत्तर

3

आप उन्हें एक उपयोगकर्ता निर्देशिका में स्थापित कर सकते हैं: http://docs.rubygems.org/read/chapter/3#page83

यह लगता है कि यह आप जवाहरात कहीं भी आप चाहते हैं स्थापित करने देती है।

+1

बस FYI करें, लिंक किए गए पृष्ठ अब काम नहीं करता –

6

आप कर सकते हैं, लेकिन यह मुश्किल है।

पहले, --install-dir विकल्प का उपयोग कर उन्हें स्थापित करते हैं, अर्थात्:

gemhome: /some/directory/you/can/write/to 
gempath: 
- /some/directory/you/can/write/to 
- /usr/local/lib/ruby/gems/1.8 

gemhome है:

gem install gem_name --install-dir /some/directory/you/can/write/to 

दूसरा, सुनिश्चित करें कि आप कुछ इस तरह दिखता अपने घर निर्देशिका में .gemrc फ़ाइल बनाने के जहां मणि की तलाश करते समय रत्न पहली बार दिखना चाहिए। gempath एक मणि की तलाश करते समय सभी पथों की जांच करनी चाहिए। तो ऊपर .gemrc में, मैं अपने कोड को स्थानीय निर्देशिका में पहले देखने के लिए कह रहा हूं, और यदि नहीं मिला, तो सिस्टम मणि निर्देशिका की जांच करें।

तीसरा, जागरूक रहें कि कुछ कोड - यहां तक ​​कि रत्नों के भीतर कोड - रत्न स्थित हैं, इस बारे में धारणाएं बना सकते हैं। कुछ कोड प्रोग्रामेटिक रूप से gempath या gemhome बदल सकते हैं। आपको अपने कोड में "इसे वापस बदलना" पड़ सकता है।

ऐसा करने के लिए बहुत कुछ नहीं है (पढ़ना: नहीं) दस्तावेज - इसे समझने का सबसे अच्छा तरीका रूबीजम्स स्रोत के साथ शामिल परीक्षणों को पढ़ना है। यहाँ कैसे मैं एक रेक कार्य में मणि पथ हैक Capistrano की मेरी जमे हुए संस्करण को इंगित करने के लिए है:

Gem.use_paths(Gem.dir, ["#{RAILS_ROOT}/vendor/gems"]) 
    Gem.refresh # picks up path changes 
+0

मैं वास्तव में यह सब समय (मेरे सभी जवाहरात में स्थापित कर ~ /.gem) और अभी तक किसी भी गलत व्यवहार कोड का सामना करना पड़ा है, न ही इसे मुश्किल लगता है। लेकिन वाईएमएमवी। – rampion

+0

दिलचस्प, मुझे आश्चर्य है कि ~/.gem एक विशेष मामला है। मैं आमतौर पर एक आवेदन में स्थापित रत्न संदर्भित करने की कोशिश कर रहा हूँ। –

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