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解决方案好得多