2013-07-09 9 views
28

मैं जेकिल स्थापित करने का प्रयास कर रहा हूं। gem install jekyll चलाने के बाद मैं इस त्रुटि मिलती है:मुझे मणि इंस्टॉल करते समय "अनुमति अस्वीकार" त्रुटि क्यों मिलती है?

ERROR: While executing gem ... (Errno::EACCES) 
    Permission denied - /usr/local/lib/ruby/gems/2.0.0/gems/jekyll-1.0.3/CONTRIBUTING.md 

मैं देख सकता हूँ Jekyll स्थापित किया गया है कि जब मैं gem list तो मैं अच्छी तरह से भ्रमित कर रहा हूँ चलाएँ:

*** LOCAL GEMS *** 

bigdecimal (1.2.0) 
classifier (1.3.3) 
colorator (0.1) 
commander (4.1.3) 
directory_watcher (1.4.1) 
fast-stemmer (1.0.2) 
highline (1.6.19) 
io-console (0.4.2) 
jekyll (1.0.3) 
json (1.7.7) 
kramdown (1.0.2) 
liquid (2.5.0) 
maruku (0.6.1) 
minitest (4.3.2) 
posix-spawn (0.3.6) 
psych (2.0.0) 
pygments.rb (0.5.1) 
rake (0.9.6) 
rdoc (4.0.0) 
rubygems-update (2.0.3) 
safe_yaml (0.7.1) 
syntax (1.0.0) 
test-unit (2.0.0.0) 
yajl-ruby (1.1.0) 

मैं के साथ समस्याओं का एक बहुत कुछ मिला है मेरी अतीत में उपयोगकर्ता पथ, तो मुझे आश्चर्य है कि क्या इस त्रुटि के साथ कुछ करने के लिए कुछ हो सकता है?

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.0.3 
    - RUBY VERSION: 2.0.0 (2013-02-24 patchlevel 0) [x86_64-darwin12.3.0] 
    - INSTALLATION DIRECTORY: /usr/local/Cellar/ruby/2.0.0-p0/lib/ruby/gems/2.0.0 
    - RUBY EXECUTABLE: /usr/local/Cellar/ruby/2.0.0-p0/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/local/Cellar/ruby/2.0.0-p0/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-12 
    - GEM PATHS: 
    - /usr/local/Cellar/ruby/2.0.0-p0/lib/ruby/gems/2.0.0 
    - /Users/me/.gem/ruby/2.0.0 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - https://rubygems.org/ 

यहाँ मेरी ".bash_profile" है::

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH" 

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 
PATH=$PATH:above/path/to/gems 

source ~/.rvm/scripts/rvm 

किसी मदद कर सके कृपया मुझे Jekyll स्थापित मिलता है, या कम से कम यह अनुमतियाँ त्रुटि अतीत मिल

यहाँ gem env के उत्पादन में है ?

उत्तर

43

आपकी रूबी /usr/local/Cellar/ruby/... में स्थापित है।

यह एक प्रतिबंधित मार्ग है और केवल जब आप रूट के रूप में चल रहे हैं या sudo का उपयोग करके ऊंचे विशेषाधिकारों का उपयोग करते हैं तो केवल लिखा जा सकता है। मैं आपको चीजों को रूट के रूप में चलाने की अनुशंसा नहीं करूंगा क्योंकि आप समझ नहीं पाते कि पथ और अनुमतियां कैसे काम करती हैं। आप sudo gem install jekyll का उपयोग कर सकते हैं, जो अस्थायी रूप से आपकी अनुमतियों को बढ़ाएगा, जिससे आपके आदेश को उस निर्देशिका को लिखने के लिए आवश्यक अधिकार दिए जाएंगे।

हालांकि, मैं आपको ऐसा करने में गंभीर विचार देने की सलाह दूंगा, और इसके बजाय रूबी को अपनी होम निर्देशिका में स्थापित करने के लिए अपने आरवीएम का उपयोग करें, जहां आप अनुमति के बिना रूबी और रत्न इंस्टॉल कर सकेंगे। "Single-User installations" में स्थानीय RVM सैंडबॉक्स में स्थापित करने के लिए दिशानिर्देश देखें।

क्योंकि आपके पास ~/.bash_profile में आरवीएम है, लेकिन यह आपके जेम पर्यावरण सूची में दिखाई नहीं देता है, मुझे संदेह है कि आपने या तो RVM को सही तरीके से स्थापित करने के निर्देशों का पालन नहीं किया है, या आपने सभी महत्वपूर्ण उपयोग नहीं किए हैं कमांड:

rvm use 2.0.0 --default 

डिफ़ॉल्ट रूबी को कॉन्फ़िगर करने के लिए।

अधिकांश उपयोगकर्ताओं के लिए, "एकल-उपयोगकर्ता स्थापना" जाने का तरीका है। यदि आपको उस कॉन्फ़िगरेशन के साथ sudo का उपयोग करना है, तो आपने कुछ गलत किया है।

+0

इसे इतना स्पष्ट करने के लिए धन्यवाद। मैं वापस चला गया है और आरवीएम स्थापित किया है। सब कुछ पूरी तरह से काम कर रहा है। – okTalk

+0

मुझे आपकी व्याख्या और विशेष रूप से आपके अंतिम पैराग्राफ को सबसे उपयोगी पाया गया। –

28

मैं चरण हैं, जो मैं पीछा किया है कि उम्मीद है कि यह (मामले में कुछ मेरे लिए और यह भी एक चेतावनी के रूप में यह फिर से होता है) की तरह किसी और की मदद कर सकते

मुद्दों में मेरे लिए यह समस्या ठीक साझा करना चाहते थे मैं (जो ओपी के समान थे) को रूबी स्थापित करने के लिए homebrew का उपयोग करने के साथ करना पड़ सकता है।

इसे ठीक करने के पहले मैं अद्यतन homebrew:

brew update && brew upgrade 
brew doctor 

(काढ़ा चिकित्सक किसी भी मुद्दे के साथ आता है, उन्हें पहले ठीक करें।) तो मैं गहरे लाल रंग का

brew uninstall ruby 

अनइंस्टॉल कर दिया है rbenv नहीं इस बिंदु पर स्थापित है, तो

brew install rbenv 
brew install ruby-build 
echo 'export RBENV_ROOT=/usr/local/var/rbenv' >> ~/.bash_profile 
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile 

तब मैं रूबी स्थापित करने के लिए rbenv इस्तेमाल किया। इस पर

rbenv global 2.2.2 

:

rbenv install -l 

उस संस्करण (उदाहरण के लिए 2.2.2)

rbenv install 2.2.2 

फिर वांछित गहरे लाल रंग का संस्करण के लिए वैश्विक संस्करण सेट स्थापित करें: सबसे पहले, इच्छित वर्शन नहीं मिल इंगित करें कि आपको निम्न आदेशों के लिए वांछित संस्करण सेट देखना चाहिए:

rbenv versions 

और

ruby --version 

अब आप बंडलर स्थापित करने के लिए सक्षम होना चाहिए:

gem install bundler 
वांछित प्रोजेक्ट फ़ोल्डर में

और एक बार, आप सभी आवश्यक जवाहरात स्थापित कर सकते हैं:

bundle 
bundle install 
+0

तो अब हमारे पास एक आरवीएम और आरबीएनवी उत्तर है। अब हमें बस [chruby] (https://github.com/postmodern/chruby/blob/master/README.md) के साथ एक और की आवश्यकता है जो कई लोग हैं [स्विचिंग] (https://jesse.codes/blog/rbenv -to-chububy /) करने के लिए। अधिक जानकारी के लिए, एक [रूबी रोगी एपिसोड] है (http://devchat.tv/ruby-rogues/169-rr-version-managers-with-michal-papis-mislav-maronic-and-postmodern-mod-iii) रूबी संस्करण प्रबंधकों की तुलना। –

+0

अच्छी नौकरी और धन्यवाद। आरबीएनवी रेपो लिंक अगर किसी को इसकी ज़रूरत है तो https://github.com/sstephenson/rbenv – jasonleonhard

+0

सिर्फ 'echo' निर्यात RBENV_ROOT =/usr/local/var/rbenv '>> ~/.bash_profile' को सेट करने का कारण क्या है डिफ़ॉल्ट '~/.rbenv' का उपयोग कर? – tir38

3

उपयोगकर्ता निर्देशिका में रत्न निर्देशिका सेट करने के बाद export GEM_HOME=/home/<user>/gems का उपयोग कर समस्या हल हो गई थी।

0

अपने रूबी संस्करण प्रबंधक के रूप में rbenv या rvm स्थापित homebrew (यानी। brew update & brew install rbenv) के माध्यम से (मैं rbenv पसंद करते हैं) लेकिन फिर rbenv के मामले में उदाहरण के लिए के रूप में निर्देश दिए here और here अपने $ पथ को rbenv जोड़ना सुनिश्चित करें।

rbenv कैसे काम करता है इस बारे में गहन स्पष्टीकरण के लिए मैं this की अनुशंसा करता हूं।

3

मैं Ubuntu पर rvm का उपयोग कर एक ही समस्या थी, एक अल्पकालिक समाधान के रूप में अपने टर्मिनल पर source की स्थापना द्वारा तय किया गया था:

source $HOME/.rvm/scripts/rvm

या

source /home/$USER/.rvm/scripts/rvm

और मेरे मामले में एक डिफ़ॉल्ट रूबी संस्करण, 2.3.3 कॉन्फ़िगर करें।

rvm use 2.3.3 --default


और एक लंबी अवधि के समाधान स्थायी रूप से अपने अपने .bashrc फाइल करने के लिए sourceमें जोड़ने के उबंटू सभी रूबी फ़ाइलों के लिए .rvm में देखने के लिए करना है।

जोड़ें:

source .rvm/scripts/rvm

में

$HOME/.bashrc फ़ाइल।

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

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