मणि स्थापित अनुमति समस्या


90
qichunren@zhaobak:~> gem install hpricot
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8 directory.

वर्तमान लॉगिन उपयोगकर्ता qichunren है, और qichunre उपयोगकर्ता ने .gem dir के साथ अनुमति लिखी है। मैं जानना चाहूंगा कि रत्न मेरे घर में फ़ाइलें क्यों नहीं स्थापित करता है। पहले dir? क्यों मेरा रत्न आम सबसे पहले /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8 में फ़ाइलें स्थापित करना चाहता है

जवाबों:


51

रूबी स्थापित करने के लिए, रूट बनें। उदाहरण के लिए:

$ sudo gem install hpricot

हालांकि, विकास सहित कई परिस्थितियों में आधुनिक दृष्टिकोण, एक उपकरण का उपयोग करना है जो आपको रूबी को एक सामान्य उपयोगकर्ता के रूप में आसानी से स्थापित और उपयोग करने देता है। इससे आप जड़ बनने से बच सकते हैं। ऐसे कुछ उपकरण हैं, और जो मैं उपयोग करता हूं वह आरवीएम है

# install rvm into your ~
$ \curl -sSL https://get.rvm.io | bash -s stable

# install latest version of ruby into your ~
$ rvm install ruby

# installs a gem into your ~
$ gem install $SOME_GEM_NAME

40
Sudo का उपयोग न करें क्योंकि आप उन्हें रूट के रूप में इंस्टॉल करेंगे और जब आप अपने सामान्य उपयोगकर्ता का उपयोग कर रहे हैं तो उन तक पहुंच नहीं होगी। RVM और जवाहरात का उपयोग करें।
रयान

4
जैसेrvm gem install hpricot
AJP

4
आप इस उत्तर को हटाना चाह सकते हैं। आप अंक रखेंगे, और लोगों को बहुत सारे सिरदर्द से बचाएंगे।
ओलहोवस्की

172

सेटिंग GEM_HOMEऔर GEM_PATHकरने की कोशिश करें ~/.gem,

वर्तमान टर्मिनल सत्र के लिए, बस टाइप करें:

export GEM_HOME=~/.gem
export GEM_PATH=~/.gem

यदि आप चाहते हैं कि जब भी आप एक टर्मिनल खोलें तो उन्हें सेट करें, उपरोक्त कमांड्स को अपनी ~/.bashrcफ़ाइल में जोड़ें।

एक कस्टम रूबी पर्यावरण की स्थापना के लिए एक अधिक व्यापक समाधान के लिए, इस ट्यूटोरियल को साइट 5 केबी से देखें , जिसमें एक .gemrcफ़ाइल का उपयोग करने का वर्णन है ।


11
यह वास्तविक सही उत्तर है। अगर आप के पास नहीं है चीजों को स्थापित करने के लिए sudo उपज मत जाओ।
जेसी ओ'ब्रायन

जवाब में लिंक बदल गया लगता है। इस गाइड के पहले कदम ने मेरे लिए वही काम पूरा किया, हालांकि: kb.site5.com/ruby-on-rails/…
माइक एस

@ माइकसुटस्की इस बात की ओर इशारा करने के लिए धन्यवाद। भविष्य में, यदि आप एक टूटी हुई कड़ी (या एक लिंक जो बदल गया है और अब प्रासंगिक नहीं है) पाते हैं, तो एक "संपादित करें" सुझाव प्रस्तुत करने के लिए स्वतंत्र महसूस करें यदि आपको लगता है कि आपके पास एक अच्छा प्रतिस्थापन है।
meagar

@meagar I ने @ माइक-स्लटस्की द्वारा दिए गए लिंक को अपडेट किया, लेकिन ध्यान दिया कि यह .gemrcकॉन्फ़िगरेशन के लिए प्रलेखन है। माणिक मणि नौसिखियों के लिए, यह चुनौतीपूर्ण है, जब मैंने आपके समाधान को बहुत सरल समझा, जो मैंने जोड़ा था। समाधान मेरे लिए काम करता है, लेकिन एक रूबी नौसिखिए के रूप में, कृपया पुष्टि करें कि मेरे परिवर्तन आपके इरादे के अनुरूप हैं।
डेविड लेबॉयर

1
वैश्विक PATH में अपना GEM_PATH जोड़ना याद रखें। यह मैं क्या कर रहा है:PATH=$HOME/.gems/bin:$HOME/bin:$PATH GEM_HOME=$HOME/.gems GEM_PATH=$HOME/.gems:/var/lib/gems/2.1.0:/usr/lib/ruby/gems/2.1.0 export PATH GEM_HOME GEM_PATH
Spone

8

मुझे अपने साझा सर्वर पर 1and1 होस्टिंग के माध्यम से यह त्रुटि मिल रही थी। मेरा समाधान --user-installविकल्प जोड़ रहा था , जो इसे केवल आपके लॉग इन उपयोगकर्ता के लिए स्थापित करता है (जो कि आपको साझा सर्वर वातावरण में सभी की आवश्यकता है) उदाहरण; सैस स्थापित करना

gem install sass --user-install

दिलचस्प बात यह है कि मैं इस त्रुटि मिल रही है, हालांकि मैं है निर्दिष्ट --user-install
sschuberth

4

यदि आप rbenv का उपयोग कर रहे हैं और यह हो रहा है, तो आपको अपने .bash_profile में निम्न जोड़ना होगा:

export RBENV_ROOT="$HOME/.rbenv"

if [ -d $RBENV_ROOT ]; then
  export PATH="$RBENV_ROOT/bin:$PATH"
  eval "$(rbenv init -)"
fi

0

माणिक पुनः स्थापित मेरी समस्या का समाधान।

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