我通过运行安装Nokogiri没有任何问题:
$ sudo gem install nokogiri
Building native extensions. This could take a while...
Successfully installed nokogiri-1.5.9
1 gem installed
Installing ri documentation for nokogiri-1.5.9...
Installing RDoc documentation for nokogiri-1.5.9...
Run Code Online (Sandbox Code Playgroud)
当我运行nokogiri.rb时:
#!/usr/bin/ruby -w
require 'nokogiri'
puts "Current directory is: #{ Dir.pwd }"
Dir.chdir("/home/askar/xml_files1") do |dirname|
puts "Now in: #{ Dir.pwd }"
xml_files = Dir.glob("ShipmentRequest*.xml")
if xml_files.empty?
puts "#{ dirname } is empty."
else
xml_files.each do |file|
doc = Nokogiri::XML(open(file))
# ... do something with the doc ...
end
end
end
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
$ ruby nokogiri.rb
/home/askar/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- nokogiri (LoadError)
from /home/askar/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
Run Code Online (Sandbox Code Playgroud)
我使用的是Ruby 1.9.3,但出于某种原因它引用了Ruby 1.9.1.这可能是原因吗?
如果仔细观察,路径开始,/home/askar/.rvm/rubies/ruby-1.9.3-p429因此负载路径应该是正确的.
您的问题是您使用sudo哪个将为系统ruby执行gem安装.没有sudo,只是再试一次
gem install nokogiri
Run Code Online (Sandbox Code Playgroud)
为当前的rvm ruby安装gem.