2014-01-27 145 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