Ubuntu Precise で rbgccxml を使用したいと考えています。この宝石にはノコギリが必要です。したがって、最初に ruby-nokogiri (v1.5.0) Ubuntu パッケージをインストールしました。次に、「gem install」で rbgccxml をインストールしようとしましたが、常に nokogiri (> 1.4) もインストールしようとします。これを防ぐために、「gem install --ignore-dependencies rbgccxml」を使用しました。
$ gem which rbgccxml
/var/lib/gems/1.8/gems/rbgccxml-1.0.3/lib/rbgccxml.rb
$ gem which nokogiri
/usr/lib/ruby/vendor_ruby/nokogiri.rb
今、私は奇妙な振る舞いをします。次のスクリプト:
require 'nokogiri'
puts 'step 1'
require 'rubygems'
puts 'step 2'
require 'rbgccxml'
puts 'step 3'
出力:
step 1
step 2
/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find nokogiri (~> 1.4.0) amongst [rbgccxml-1.0.3] (Gem::LoadError)
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:771:in `activate_dependencies'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:760:in `each'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:760:in `activate_dependencies'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:744:in `activate'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:209:in `try_activate'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:58:in `require'
from test3.rb:8
では、なぜ nokogiri は require によって検出され、rbgccxml 内の require では検出されないのでしょうか?