使用bundle exec可以解决这个问题吗?

时间:2012-01-10 20:12:58

标签: ruby rubygems gem sinatra bundler

这是我的Gemfile

source :rubygems

gem 'rake', '0.9.2.2'
gem 'sinatra'
gem 'activerecord', '3.0.9'
gem 'pg', '~> 0.12.2'
gem 'logger'
gem 'nokogiri'

group :development, :test do
  gem 'rack-test'
  gem 'ruby-debug19'
  gem 'sqlite3'
end

我运行的rake console适用于其他项目,现在我收到此消息:

You have already activated activesupport 3.1.3, but your Gemfile requires activesupport 3.0.9. Using bundle exec may solve this.

如何使用`bundle exec来解决这个问题?这是什么意思?

4 个答案:

答案 0 :(得分:41)

要停止使用bundle exec rake,您可以运行bundle clean --force。此命令将更新您的Gemfile.lock。

答案 1 :(得分:11)

您可以运行bundle exec rake console,这意味着命令(在本例中为rake console)将锁定到Gemfile中列出的特定gem。

答案 2 :(得分:7)

ruby​​gems-bundler解决了这个问题。运行以下命令:

$ gem install rubygems-bundler

$ $ gem regenerate_binstubs

然后再试一次。

答案 3 :(得分:0)

您可以检查以确保在Gemfile中包含rake。如果不是,请添加它,并指定版本"您已经激活"。

或者您可以在本地更新

bundle update rake

我希望这有助于