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

Ruby 使用bundle exec可以解决这个问题吗?,ruby,rubygems,gem,sinatra,bundler,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 cons

这是我的
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
,它可以在其他项目中工作,现在我收到了以下消息:

您已经激活了activesupport 3.1.3,但您的文件需要activesupport 3.0.9。使用bundle exec可以解决这个问题。


如何使用` bundle exec解决此问题?这意味着什么?

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

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

rubygems捆绑程序解决了此问题。运行以下命令:

$gem安装rubygems捆绑包


$$gem重新生成\u binstubs


然后再次尝试您的捆绑包。

您可以检查以确保您的文件中包含
rake
。如果不是,请添加它,并指定版本“您已激活”

或者你可以在你的本地网站上更新

bundle update rake

我希望这有助于

注意,在rvm的某些版本中,
bundle exec
是必需的,在某些版本中,它是自动的。我认为这是一个方便,他们添加了一段时间,然后退出,因为这会造成问题。这对我和imo来说是最好的答案,不需要对现有的Gemfile和Gemfile.lockThis进行任何更改!比bundle exec解决方案好得多