Using gems:unpack into vendor/gems still requires the gems to be installed via gems:install

Maybe I'm missing something, but why do gem dependencies that have
been unpacked into vendor/gems have to be installed on the machine as
well? This doesn't make much sense to me -- if the gems are already
on the machine, why does Rails still tell me to rake gems:install even
when a gem is frozen into vendor/gems, but not on the machine?

This has become an issue because we want our CruiseControl.rb builds
to have the correct gems, but getting them installed automatically is
a bit of a pain. (If anyone has a good solution for this, please let
me know -- I'm not finding much of anything about these problems.)

Thanks for your input.

-- Ben

Ben Oakes wrote:

Maybe I'm missing something, but why do gem dependencies that have
been unpacked into vendor/gems have to be installed on the machine as
well? This doesn't make much sense to me -- if the gems are already
on the machine, why does Rails still tell me to rake gems:install even
when a gem is frozen into vendor/gems, but not on the machine?

This has become an issue because we want our CruiseControl.rb builds
to have the correct gems, but getting them installed automatically is
a bit of a pain. (If anyone has a good solution for this, please let
me know -- I'm not finding much of anything about these problems.)

Thanks for your input.

-- Ben

Maybe you need to add something like this to environment.rb:

  config.load_paths += Dir["#{RAILS_ROOT}/vendor/gems/**"].map do |dir|
    File.directory?(lib = "#{dir}/lib") ? lib : dir
  end

- Ivan V.

That might do it, but pretty much every rake task would still say gems
need to be installed via rake gems:install. (Haven't tested this
though.)

-- Ben

Ben Oakes wrote:

That might do it, but pretty much every rake task would still say gems
need to be installed via rake gems:install. (Haven't tested this
though.)

-- Ben

On Jun 26, 5:44�pm, "Ivan V." <rails-mailing-l...@andreas-s.net>

If you have your gems frozen, why would you need to require them on your
environment? Maybe you can comment them out until Rails can detect when
they're frozen.

- Ivan

You're using Rails 2.1, right? Gems that are unpacked shouldn't need
to also be installed on the machine. Are you trying to use a gem like
this:

require "hpricot"
task :some_task_that_needs_hpricot do
  ...
end

If so, the problem is that the Rails environment hasn't loaded to put
the gems in vendor/gems into your load path when you're trying to
require "hpricot." If that's the problem, I would lazy load the gems
in tasks that depend on the :environment task.

task :hpricot => :environment do
  require "hpricot"
end
task :some_task_that_needs_hpricot => :hpricot do
  ...
end

-Dan Manges