Bugs item #29114, was opened at 2011-04-05 00:22
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=575&aid=29114&group_id=126
Category: None
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Daniel DeLeo (danielsdeleo)
Assigned to: Nobody (None)
Summary: older gems interfere with loading paths from external gems
Initial Comment:
I'm seeing this issue with the Chef project. In the current release version, we
have a bunch of files under chef/knife/whatever.rb In the current prerelease
version, we have plugin support using Gem.find_files (thanks for the patch
guys!), so we've moved much of this code out to separate gems. We strip the
paths we get back from Gem.find_files to the normal relative paths (e.g.,
chef/knife/ec2_server_create) so that we can uniq them and rely on rubygems to
load the latest version of the gem.
The problem I'm seeing is this:
Chef 0.9.14 has a file 'chef/knife/ec2_instance_data'
Chef 0.10.0 does not have this file.
the knife-ec2 plugin *does* have a file 'chef/knife/ec2_instance_data'
When I have both Chef 0.9.14 and Chef 0.10 installed and Chef 0.10 attempts to
`require 'chef/knife/ec2_instance_data'` it gets a LoadError
/Users/ddeleo/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:57:in
`require': no such file to load -- chef/knife/ec2_instance_data (LoadError)
from
/Users/ddeleo/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:57:in
`rescue in require'
from
/Users/ddeleo/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in
`require'
from
/Users/ddeleo/.rvm/gems/ruby-1.9.2-p180/gems/chef-0.10.0.beta.6/lib/chef/knife/core/subcommand_loader.rb:39:in
`block in load_commands'
# etc.
If I run `gem which chef/knife/ec2_instance_data`, I see that rubygems prefers
the one in the old version of chef:
gem which chef/knife/ec2_instance_data
/Users/ddeleo/.rvm/gems/ruby-1.9.2-p180/gems/chef-0.9.14/lib/chef/knife/ec2_instance_data.rb
When I uninstall the old version of chef, so that I have only the 0.10 beta,
then chef 0.10 can successfully require the 'chef/knife/ec2_instance_data'
file, and `gem which` reports that the file is located in the knife-ec2 gem.
----------------------------------------------------------------------
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=575&aid=29114&group_id=126
_______________________________________________
Rubygems-developers mailing list
http://rubyforge.org/projects/rubygems
[email protected]
http://rubyforge.org/mailman/listinfo/rubygems-developers