【发布时间】:2013-05-31 15:02:49
【问题描述】:
我通过运行安装 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...
当我运行 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
我得到了错误:
$ 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'
我使用的是 Ruby 1.9.3,但由于某种原因它指的是 Ruby 1.9.1。这可能是原因吗?
【问题讨论】:
-
如果您使用 RVM 或 rbenv 管理您的 Ruby,切勿使用
sudo安装 gem,除非您当前设置为使用“系统”Ruby。 -
@锡人。谢谢,我会记住的。
-
为什么我被否决了?我在nokogiri.org/tutorials/installing_nokogiri.html 遵循安装说明,他们在那里使用“sudo”。
-
我不确定您为什么被否决,但我可以说您在按照指示进行时没有进行健全性检查。 Nokogiri 网站上的说明与使用 RVM 或 rbenv 没有任何关系。作为 Ruby 环境的“管理员”,您必须了解自己的情况,并决定是否应该完全按照他们的指示行事,或者应用您环境的一些知识并排除他们的一些建议。您不能说“我这样做是因为他们说!”,而是必须排除没有意义的事情。这当然是一种学习体验,但你是老板。
-
@the Tin Man 我同意你的看法。但是 stackoverflow.com 不是大学。人们来这里是为了解决他们的问题和我犯的错误,我相信是可以原谅的。如果我问的是非建设性的或非常笼统的问题,我会理解的。我敢肯定,投反对票的管理员是他的主观意见,其他管理员不会投反对票。 :)