2013-05-29 6 views
14

मैं एक योनि सेटअप बना रहा हूं, और इसका हिस्सा आरबीएनवी स्थापित कर रहा है। मैं अपने सभी शेफ कुकबुक का प्रबंधन करने के लिए लाइब्रेरियन-शेफ का उपयोग कर रहा हूं, और यह आरबीएनवी और रूबी-बिल्ड स्थापित करता है।क्या rbenv को सिस्टम-व्यापी, या उपयोगकर्ता स्तर पर स्थापित किया जाना चाहिए?

हालांकि, जब मैंने अपने Vagrant VM में ssh करने की कोशिश की और ruby -v टाइप किया तो मुझे मानक सिस्टम-स्थापित ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux] मिला। यह सोचकर कि शायद rbenv स्थापित नहीं किया गया था, मैं rbenv versions चल कोशिश की, लेकिन rbenv वास्तव में स्थापित किया गया था:

[email protected]:~$ rbenv versions 
* system (set by /opt/rbenv/version) 

तो फिर मैं rbenv install [version] की कोशिश की:

[email protected]:~$ rbenv install 1.9.3-p327 
[...] 

BUILD FAILED 
[...] 

test -z "/opt/rbenv/versions/1.9.3-p327/include" || /bin/mkdir -p "/opt/rbenv/versions/1.9.3-p327/include" 
/bin/mkdir: cannot create directory `/opt/rbenv/versions/1.9.3-p327': Permission denied 

कि Permission denied साथ विफल रहा है। मैंने sudo:

sudo rbenv install 1.9.3-p327 

और फिर काम किया। तब मैं rbenv versions फिर से चलाने की कोशिश की:

[email protected]:~$ rbenv versions 
* system (set by /opt/rbenv/version) 

लेकिन यह अभी भी कहते हैं केवल system रूबी स्थापित किया गया है। हालांकि, अगर मैं sudo साथ इसे चलाने:

[email protected]:~$ sudo rbenv versions 
* system (set by /home/vagrant/.rbenv/version) 
    1.9.3-p327 

rbenv versions अब पता चलता 1.9.3 स्थापित किया गया था।

तो ऐसा लगता है कि एक डिस्कनेक्ट होता है, जिसमें आरबीएनवी और मेरा रूबी संस्करण अब सिस्टम स्तर पर स्थापित है, न कि उपयोगकर्ता स्तर पर।

मैं rbenv-cookbook का उपयोग कर रहा हूं। मैं आरएफएनवी को शेफ के साथ स्थापित करना चाहता हूं, क्योंकि यह मुझे इसे मैन्युअल रूप से सेट करने से बचाता है, पोस्ट-इंस्टॉल करें।

मेरा दूसरा मुद्दा यह है कि यह सब कुछ है जो रूबी-नियंत्रित है, जैसे gem, वही डिस्कनेक्ट भी पीड़ित है।

[email protected]:~$ gem install bundler 
Fetching: bundler-1.3.5.gem (100%) 
ERROR: While executing gem ... (Gem::FilePermissionError) 
    You don't have write permissions into the /opt/vagrant_ruby/lib/ruby/gems/1.8 directory. 

उत्तर

14

लगभग दो साल पहले, discussion happened in github साझा इंस्टॉल के बारे में, जो प्रश्न का उत्तर देने के लिए प्रतीत होता है।

सार: sstephenson (rbenv लेखक) विशेष रूप से, क्योंकि अनुमतियों के साथ जटिलताओं के पूरे सिस्टम में इंस्टॉल किए जाने को प्रोत्साहित करने की तरह नहीं है,, लिखने आदि वह मजबूत समर्थन और अधिक जटिल rbenv होगा जोड़ने का मानना ​​है, और सादगी लक्ष्य है ।

संपादित

मैं के बाद से fnichol के शेफ-rbenv रसोई की किताब है, जो, अगर आप वास्तव में एक सिस्टम-वाइड rbenv स्थापित करना चाहते हैं, एक right and proper method देता है का सामना करना पड़ा है, और आप बावर्ची के साथ स्वचालित कर सकते हैं (मैं चाकू एकल की सिफारिश करें)।

यह /etc/profile.d/ पर स्थापित करता है ताकि यह सभी उपयोगकर्ताओं के लिए चलाया जा सके, putting the proper ruby into the PATH

+0

"सही और उचित विधि" लिंक टूटा हुआ है। – Volte

1

rbenv के रीडमी में सब कुछ ~/.rbenv/ में एक स्थानीय (प्रति-उपयोगकर्ता) स्थापना मान तो मैं यह मान लेगा कि सरकारी सिफारिश प्रति-उपयोगकर्ता के आधार पर यह स्थापित करने के लिए है।

फिर भी, इसे वैश्विक स्तर पर स्थापित करना संभव है। लेकिन आपको अधिकारों को लिखने की आवश्यकता वाले सभी आदेशों के लिए sudo की आवश्यकता होगी। नए रूबी स्थापित करना, रत्न स्थापित करना * और वैश्विक रूबी संस्करण को बदलना मेरे दिमाग में आने वाले हैं, और भी कुछ हो सकता है।

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

+0

इस आलेख में निर्देश हैं: http://blakewilliams.me/blog/4-system-wide-rbenv-install समूह को कर्मचारियों में भी बदलता है और समूह अनुमति देता है + चिपचिपा बिट सेट करता है, इसलिए आपको इंस्टॉल करने में सक्षम होना चाहिए और किसी भी उपयोगकर्ता से rubies का उपयोग करें। मुझे यकीन नहीं है कि यह सिफारिश की जाती है या नहीं, और अनिश्चित क्यों या क्यों नहीं। – Duke

13

rbenv उपयोगकर्ता स्तर पर स्थापित होना चाहिए।

दुर्भाग्य से, यह है कि जब gem install चल रहा है, आप इस समस्या को देखा में पड़ सकते हैं मतलब है:

You don't have write permissions into the {...} directory 

आप ~/.rbenv निर्देशिका पर सही अनुमतियां सेट करके ऐसा हल कर सकते हैं।

sudo chown -R yourusername ~/.rbenv 

chown के बाद निर्देशिका ing, आप sudo बिना gem install चलाने के लिए सक्षम हो जाएगा।

+0

बहुत बहुत धन्यवाद! – thomallen

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