"gem install"需要安装Ruby版本> = 1.8.7

Kri*_*ris 2 ruby rubygems

$ gem -v
1.8.5
$ ruby -v
ruby 1.8.7 (2010-04-19 patchlevel 253) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2010.02

$ sudo gem install sanitize
ERROR:  Error installing sanitize:
    nokogiri requires Ruby version >= 1.8.7
Run Code Online (Sandbox Code Playgroud)

这也适用于其他宝石,而不仅仅是nokogiri.我在Ruby 1.8.7上并/opt/ruby-enterprise-1.8.7-2010.02/bin/ruby/usr/bin安装系统Ruby(1.8.6)之前设置了我的$ PATH .

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.5
  - RUBY VERSION: 1.8.7 (2010-04-19 patchlevel 253) [x86_64-linux]
  - INSTALLATION DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby
  - EXECUTABLE DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/bin

$ which ruby
/opt/ruby-enterprise-1.8.7-2010.02/bin/ruby
$which gem
/opt/ruby-enterprise-1.8.7-2010.02/bin/gem
Run Code Online (Sandbox Code Playgroud)

Cas*_*per 7

您的sudo命令很可能会更改您的PATH变量.尝试sudo gem env,你可以验证这一点.作为解决方案,您可以尝试这样做:

sudo env PATH=$PATH gem install ...
Run Code Online (Sandbox Code Playgroud)

另见这里进一步讨论:
sudo改变路径 - 为什么?

作为一种解决方法,您还可以:

sudo su -m
Run Code Online (Sandbox Code Playgroud)

使用-m修饰符保留环境以获取根提示符.然后从该根提示符执行gem安装.