2010/2/5 Jun Young <juneng603 / gmail.com>: > it makes my script working. but, I am still wondering why it didn't > work. > > I installed the library by using gems. why I have to load 'rubygems' > library also before calling 'nokogiri'?? Because that is how it works :) RubyGems is a packaging system. It works by manipulating Ruby's load path to include the lib directories of any gems you have installed... but to make that work, you must include RubyGems in your script. Starting with Ruby 1.9, RubyGems is built-in to Ruby, so you won't need to do that any more, but while you're using Ruby 1.8, you'll need to require rubygems whenever you want to use a gem. As an alternative, you can set the environment variable RUBYOPT to 'rubygems': [11:24:29] ben@folio (master) ~ $ cat d.rb require 'nokogiri' puts "nokogiri loaded successfully" [11:24:34] ben@folio (master) ~ $ ruby d.rb d.rb:1:in `require': no such file to load -- nokogiri (LoadError) from d.rb:1 [11:24:36] ben@folio (master) ~ $ export RUBYOPT="rubygems" [11:24:42] ben@folio (master) ~ $ ruby d.rb nokogiri loaded successfully