2014-01-27 58 views
2

我在Ubuntu 12.04上有一段時間安裝Nokogiri的惡魔。我使用rbenv。爲什麼不安裝nokogiri?

$ gem install nokogiri -v '1.6.1' 
    ERROR: While executing gem ... (Errno::EACCES) 
     Permission denied - /home/deploy/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1/.autotest 

    $ sudo gem install nokogiri -v '1.6.1' 
    ERROR: Error installing nokogiri: 
     nokogiri requires Ruby version >= 1.9.2. 

    $ rbenv sudo gem install nokogiri -v '1.6.1' 
    Building native extensions. This could take a while... 
    ERROR: Error installing nokogiri: 
     ERROR: Failed to build gem native extension. 

     /home/deploy/.rbenv/versions/2.0.0-p353/bin/ruby extconf.rb 

    Gem files will remain installed in /home/deploy/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1 for inspection. 
    Results logged to /home/deploy/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1/ext/nokogiri/gem_make.out 

    $ ruby -v 
    ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux] 

    $ sudo ruby -v 
    ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] 

    $ rbenv sudo ruby -v 
    ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux] 

    $ echo $PATH 
    /home/deploy/.rbenv/bin:/home/deploy/.rbenv/bin:/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

好像我需要有sudo ruby -v給我2.0.0的一些方法。我錯過了什麼?

+0

[這](http://stackoverflow.com/questions/10148704/nokogiri-1-5-2-not-installing-on-ubuntu-11-10)可以幫助 –

+0

嘗試'須藤-E ruby -v'將你的環境變量複製到'sudo'會話中。 'rvmsudo'也許值得一試? –

+0

你的第三次嘗試看起來是正確的。日誌文件中的結果是什麼? (這可能是一個不同的問題) –

回答

4

當你用rbenv做gem install時,你不應該需要sudo。不幸的是,新安裝的.rbenv目錄的所有權通常不正確。

做到這一點首先要正確設置你的權限:

sudo chown -R $USER "$HOME/.rbenv" 

然後繼續前進,只是再次運行安裝:

gem install nokogiri -v '1.6.1' 

應該沒有sudo工作。

0

這工作正常,但請確保在運行sudo chown後重新啓動終端窗口。

sudo chown -R $USER "$HOME/.rbenv" 

# close terminal, then run the gem install 

gem install nokogiri