ruby - मणि स्थापित करना या RubyGems को अपडेट करना अनुमति त्रुटि के साथ विफल रहता है




11 Answers

आपके पास /Library/Ruby/Gems/1.8 निर्देशिका में लेखन अनुमतियां नहीं हैं।

इसका मतलब है कि, आपको वहां लिखने की अनुमति नहीं है।

एप्पल द्वारा अपने स्वयं के उपयोग के लिए स्थापित रूबी का संस्करण है। हालांकि, यदि आप जानते हैं कि आप क्या कर रहे हैं , तो मामूली संशोधन करना ठीक है, क्योंकि आप अनुमति समस्याओं के बारे में निश्चित नहीं हैं, मैं कहूंगा कि उस ट्रैक के साथ जारी रखना अच्छा विचार नहीं है।

इसके बजाए, मैं दृढ़ता से सुझाव दूंगा कि आप अपनी होम निर्देशिका में एक सैंडबॉक्स में स्थापित एक अलग रूबी का प्रबंधन करने के लिए या तो rbenv या RVM का उपयोग करने में देखें, ताकि आप सिस्टम रूबी को गड़बड़ करने के बारे में चिंता किए बिना / फोल्ड / स्पिंडल / चेंज कर सकें।

दोनों के बीच, मैं rbenv का उपयोग करता हूं, हालांकि मैंने अतीत में आरवीएम का उपयोग किया था। rubenv आपकी रूबी स्थापना के प्रबंधन के लिए एक और "हाथ से बंद" दृष्टिकोण लेता है। आरवीएम में बहुत सी विशेषताएं हैं और यह बहुत शक्तिशाली है, लेकिन परिणामस्वरूप अधिक घुसपैठ कर रहा है। किसी भी मामले में, जो कुछ भी आप चुनते हैं उसे इंस्टॉल करने से पहले दो बार उनके लिए इंस्टॉलेशन प्रलेखन पढ़ें

एक मणि स्थापित करने की कोशिश कर रहा है ( gem install mygem ) या अद्यतन RubyGems ( gem update --system ) इस त्रुटि के साथ विफल रहता है:

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

किसी को भी यह हल करने का विचार है?




आपको वास्तव में रूबी संस्करण प्रबंधक का उपयोग करना चाहिए।

एक सही तरीके से उपयोग करना एक gem update कमांड निष्पादित करते समय आपकी अनुमति समस्या को रोक सकता है और हल कर सकता है।

मैं rbenv की सलाह देते हैं

हालांकि, यहां तक ​​कि जब आप रूबी संस्करण प्रबंधक का उपयोग करते हैं, तब भी आपको वही त्रुटि संदेश मिल सकता है।

यदि आप करते हैं, और आप rbenv का उपयोग कर रहे हैं, तो बस सत्यापित करें कि ~/.rbenv/shims निर्देशिका सिस्टम रूबी के पथ से पहले है।

$ echo $PATH आपको अपने लोड पथ का ऑर्डर दिखाएगा।

यदि आपको लगता है कि आपकी शिम्स निर्देशिका आपके सिस्टम रूबी बिन निर्देशिका के बाद आता है, तो अपनी ~/.bashrc फ़ाइल को संपादित करें और इसे अपने अंतिम निर्यात के रूप में रखें PATH कमांड: export PATH=$HOME/.rbenv/shims:$PATH

$ ruby -v आपको दिखाता है कि आप किस रूबी का उपयोग कर रहे हैं

इससे पता चलता है कि मैं वर्तमान में रूबी के सिस्टम संस्करण का उपयोग कर रहा हूं (आमतौर पर अच्छा नहीं)

$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

$ rbenv global 1.9.3-p448 मुझे एक नए, पूर्व-स्थापित संस्करण में स्विच करता है (नीचे संदर्भ देखें)।

इससे पता चलता है कि मैं रूबी का एक नया संस्करण उपयोग कर रहा हूं (संभवतः जेम :: फाइलप्रमिशन एरर का कारण नहीं होगा)

$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

आपको आमतौर पर सूडो के साथ एक मणि कमांड पेश करने की आवश्यकता नहीं है। यदि आपको ऐसा करने की आवश्यकता महसूस होती है, तो शायद कुछ गलत तरीके से कॉन्फ़िगर किया गया है।

आरबीएनवी के बारे में विवरण के लिए निम्नलिखित देखें:




मेरे लिए समस्या rbenv का उपयोग rbenv और वैश्विक स्तर पर उचित संस्करण सेट करने के लिए भूलने के कारण थी।

तो मुझे इसे rbenv global xxx साथ सेट करना पड़ा

मेरे मामले में मैंने 2.0.0-p247 स्थापित किया है इसलिए मुझे आदेश जारी करना पड़ा:

rbenv global 2.0.0-p247
rbenv rehash

तब सब ठीक काम कर रहे थे।




आपको अपने पथों को सही करने की जरूरत है

यह तय करने के लिए कि यह फ़िक्स काम करेगा या नहीं:

which gem

यह उस निर्देशिका को आउटपुट करना चाहिए जिसके पास आपके पास अनुमति नहीं है:

/usr/bin/gem

इसे ठीक करने के लिए निम्न चरणों का पालन करें।

  1. अपनी प्रोफ़ाइल में प्रतिलिपि बनाने के लिए आवश्यक पथ का निर्धारण करें:

    rbenv init -
    

आउटपुट की पहली पंक्ति वह रेखा है जिसे आपको अपनी प्रोफ़ाइल पर प्रतिलिपि बनाने की आवश्यकता है:

export PATH="/Users/justin/.rbenv/shims:${PATH}" #path that needs to be copied
source "/usr/local/Cellar/rbenv/0.4.0/libexec/../completions/rbenv.zsh"
rbenv rehash 2>/dev/null
rbenv() {
  typeset command
  command="$1"
  if [ "$#" -gt 0 ]; then
    shift
  fi

  case "$command" in
  rehash|shell)
    eval `rbenv "sh-$command" "[email protected]"`;;
  *)
    command rbenv "$command" "[email protected]";;
  esac
}
  1. पथ को अपनी प्रोफ़ाइल में कॉपी करें और इसे सेव करें

  2. अपनी प्रोफ़ाइल को पुनः लोड करें (स्रोत ~ / .zshenv मेरे लिए)

  3. rbenv rehash चलाएं

अब जब आप which gem चलाते हैं तो आपको स्थानीय पथ प्राप्त करना चाहिए जिसमें आपके पास अनुमति है:

/Users/justin/.rbenv/shims/gem



नीचे दिए गए मेरे मूल उत्तर का उपयोग करने से पहले नाथनवाइ का जवाब आज़माएं। --user-install की उनकी सिफारिश को आपके --user-install के साथ --user-install या अपने रूबी संस्करण को निर्धारित किए बिना एक ही उद्देश्य को पूरा करना चाहिए।

यदि आप किसी विशिष्ट रूबी संस्करण के बारे में चिंतित नहीं हैं, तो आप भारी-लिफ्ट रूबी पर्यावरण प्रबंधक विकल्पों को छोड़ सकते हैं , और इन पंक्तियों को ~/.bash_profile जोड़ सकते हैं:

export GEM_HOME="$HOME/.gem/ruby/2.0.0"
export GEM_PATH="$HOME/.gem/ruby/2.0.0"

मार्ग gem env के मूल उत्पादन से चोरी हो गया है:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.14
  - RUBY VERSION: 2.0.0
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
  - RUBY EXECUTABLE: /System/Library/.../2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-14
  - GEM PATHS:
     - /Library/Ruby/Gems/2.0.0
     - /Users/mylogin/.gem/ruby/2.0.0 # <-- This guy, right here.
     - /System/Library/.../usr/lib/ruby/gems/2.0.0
  ...

कोई sudo आईएनजी आवश्यक नहीं है, और आप ऐप्पल की सौजन्य से पहले से स्थापित रूबी का उपयोग कर सकते हैं।




मुझे यह पता चला कि sudo कम मणि के लिए कैसे :

  1. brew install rbenv ruby-build
  2. sudo gem update --system
  3. .bashrc निर्यात जोड़ें:

    export RBENV_ROOT="$(brew --prefix rbenv)"
    export GEM_HOME="$(brew --prefix)/opt/gems"
    export GEM_PATH="$(brew --prefix)/opt/gems"
    
  4. और अंत में इसे अपने ~/.gemrc :

    gem: -n/usr/local/bin
    
  5. gem update --system




मैंने अपने मैक को स्वरूपित किया था और कई सुझाए गए समाधान मेरे लिए काम नहीं करते थे। मेरे लिए क्या काम किया गया है ये आदेश सही क्रम में हैं:

  1. होमब्रू स्थापित करें:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  2. रूबी स्थापित करें:

    brew install ruby
    
  3. कम्पास स्थापित करें:

    sudo gem install compass
    



यह मेरे लिए काम किया। इसके अलावा, अगर आपने पहले जड़ के रूप में रत्न स्थापित किए हैं, तो यह आपको स्वामित्व को वापस बदलकर उस समस्या को ठीक करता है (बेहतर सुरक्षा-वार)।

sudo chown -R `whoami` /Library/Ruby/Gems



जैसा कि बॉबबेडेलोल द्वारा इंगित किया गया है, रीहैश ने मेरे लिए काम किया:

==> which ruby
/usr/bin/ruby

==> rbenv install 1.9.3-p551
Downloading ruby-1.9.3-p551.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p551.tar.bz2
Installing ruby-1.9.3-p551...
Installed ruby-1.9.3-p551 to /Users/username/.rbenv/versions/1.9.3-p551


==> which ruby
/Users/username/.rbenv/shims/ruby

==> which gem
/Users/username/.rbenv/shims/gem

==> gem install compass
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> rbenv rehash


==> ruby -v
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-darwin15.4.0]


==> gem install compass
Fetching: sass-3.4.22.gem (100%)
Fetching: multi_json-1.11.3.gem (100%)
Fetching: compass-core-1.0.3.gem (100%)
Fetching: compass-import-once-1.0.5.gem (100%)
Fetching: chunky_png-1.3.5.gem (100%)
Fetching: rb-fsevent-0.9.7.gem (100%)
Fetching: ffi-1.9.10.gem (100%)
Building native extensions.  This could take a while...
Fetching: rb-inotify-0.9.7.gem (100%)
Fetching: compass-1.0.3.gem (100%)
    Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!
Successfully installed sass-3.4.22
Successfully installed multi_json-1.11.3
Successfully installed compass-core-1.0.3
Successfully installed compass-import-once-1.0.5
Successfully installed chunky_png-1.3.5
Successfully installed rb-fsevent-0.9.7
Successfully installed ffi-1.9.10
Successfully installed rb-inotify-0.9.7
Successfully installed compass-1.0.3
9 gems installed
Installing ri documentation for sass-3.4.22...
Installing ri documentation for multi_json-1.11.3...
Installing ri documentation for compass-core-1.0.3...
Installing ri documentation for compass-import-once-1.0.5...
Installing ri documentation for chunky_png-1.3.5...
Installing ri documentation for rb-fsevent-0.9.7...
Installing ri documentation for ffi-1.9.10...
Installing ri documentation for rb-inotify-0.9.7...
Installing ri documentation for compass-1.0.3...
Installing RDoc documentation for sass-3.4.22...
Installing RDoc documentation for multi_json-1.11.3...
Installing RDoc documentation for compass-core-1.0.3...
Installing RDoc documentation for compass-import-once-1.0.5...
Installing RDoc documentation for chunky_png-1.3.5...
Installing RDoc documentation for rb-fsevent-0.9.7...
Installing RDoc documentation for ffi-1.9.10...
Installing RDoc documentation for rb-inotify-0.9.7...
Installing RDoc documentation for compass-1.0.3...



मणि इंस्टॉल करना या RubyGems को अपडेट करना अनुमति त्रुटि के साथ विफल रहता है फिर यह कमांड टाइप करें

sudo gem install cocoapods



त्रुटि का कारण यह है क्योंकि आप टर्मिनल पर रूट उपयोगकर्ता के रूप में लॉग इन नहीं हैं।

यदि आपके पास पहले से रूट उपयोग है तो टर्मिनल प्रकार में आपके मैक पर सक्षम करें

$ su

यदि आपके पास रूट उपयोगकर्ता नहीं है, तो आपको निम्न चरणों का उपयोग करके इसे सक्षम करने की आवश्यकता है

  1. ऐप्पल मेनू से सिस्टम प्राथमिकताएं चुनें ...।
  2. व्यू मेनू से उपयोगकर्ता और समूह चुनें।
  3. लॉक पर क्लिक करें और व्यवस्थापक खाते के रूप में प्रमाणित करें।
  4. लॉगिन विकल्प पर क्लिक करें ...।
  5. निचले दाएं भाग पर "संपादित करें ..." या "शामिल हों ..." बटन पर क्लिक करें।
  6. "ओपन डायरेक्टरी यूटिलिटी ..." बटन पर क्लिक करें।
  7. निर्देशिका उपयोगिता विंडो में लॉक पर क्लिक करें।
  8. व्यवस्थापक खाता नाम और पासवर्ड दर्ज करें, फिर ठीक क्लिक करें।
  9. संपादन मेनू से रूट उपयोगकर्ता सक्षम करें चुनें।
  10. रूट पासवर्ड दर्ज करें जिसे आप पासवर्ड और सत्यापन फ़ील्ड दोनों में उपयोग करना चाहते हैं, फिर ठीक क्लिक करें।

http://support.apple.com/kb/ht1528 पर वही

कम से कम यह घंटों के लिए अटकने के बाद मेरे लिए काम करता है।




Related