Problem using "rake gems:*" with mongrel_cluster, ruby-oci8, and sqlite3-ruby

I'm having trouble using the environment.rb file to manage my gem
dependencies for certain gems. For example, I added "config.gem
mongrel_cluster" to my environment.rb file, and then installed it
through "rake gems install", and it seemed to work fine:

+ sudo rake gems:install
Password:
(in /home/mdelaurentis/src/longview-web)
gem install mongrel_cluster
Bulk updating Gem source index for: http://gems.rubyforge.org/
Successfully installed mongrel_cluster-1.0.5
1 gem installed

But then when I use "rake gems" to list the gems, I get this "no such
file to load error", and the list of gems shows mongrel_cluster as not
being installed:

[mdelaurentis-lin:~/src/longview-web]
+ sudo rake gems
(in /home/mdelaurentis/src/longview-web)
no such file to load -- mongrel_cluster
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require'

---- Snip ----

[I] rcov
[I] ar-extensions
[I] json
[I] daemons
[I] mongrel
[I] capistrano
[I] gem_plugin
[ ] mongrel_cluster

As you can see, some of the gems work just fine. I've only seen this
problem with mongrel_cluster, sqlite3, and ruby-oci8. I'm using Ruby
1.8.6 and Rails 2.1.1.

Has anyone else encountered this?

I figured it out. It's because the configuration was trying to load
the mongrel_cluster, ruby-oci8, and sqlite3-ruby libraries through
'require "<gem-name>"'. I needed to specify the name for the library
in the environment.rb file, like this:

config.gem "mongrel_cluster", :lib => "mongrel_cluster/init"
config.gem "ruby-oci8", :lib => "oci8"
config.gem "sqlite3-ruby", :lib => "sqlite3"

All my other gems had a *.rb file with the same name as the gem, but
these three don't, so the :lib option must be used.

Mike, thank you!!, you saved me some complicated workaround around
this:

  config.gem "flickr-fu"
  $ rake gems
  These gems that this application depends on are missing:
   - flickr-fu
  Run "rake gems:install" to install them.

BUT:

  config.gem "flickr-fu", :lib => 'flickr_fu'
  $ rake gems
  [F] flickr-fu

I don't get why this isn't stated in the environment.rb examples more
clearly.

Thanks again, hopefully someone searching this group for something
"config.gem problem load gem installed" will find it :slight_smile:

Karel