【发布时间】:2016-09-21 08:09:37
【问题描述】:
当我第一次将 gem 添加到项目的Gemfile 时,但我之前在处理另一个项目时安装了 gem,它使用 gem 的现有版本,而不是可用的最新版本 gem .
例如,使用捆绑器版本 1.11.2,我将 gem 'rubocop' 添加到项目的 Gemfile,运行 bundle install 导致它使用 RuboCop 版本 0.42.0,而不是当前版本(截至 2016 年 10 月 21 日) 0.44.1 版本:
rubocop (0.42.0)
parser (>= 2.3.1.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
运行 bundle update rubocop 导致使用 0.44.1 版本,而没有任何预先存在的 gem 更改其版本。这表明使用 RuboCop 0.44.1 版没有任何限制。
rubocop (0.44.1)
parser (>= 2.3.1.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
运行bundle install 时,对于Gemfile.lock 中未提及的gem,我怎么知道它要下载gem 的最新兼容版本,而不是使用恰好在本地机器?
我尝试查看http://bundler.io/v1.13/man/bundle-install.1.html,但似乎没有任何相关信息。
【问题讨论】:
-
你是什么意思“在lockfile中没有提到”?如果它不在 lockfile 中,那么它就不是 gemfile 中的 gem 或它们的依赖项之一,因此 bundle 与它无关。
-
@SergioTulentsev 当我刚刚将 gem 添加到
Gemfile并且还没有运行bundle install时,这将列出Gemfile.lock中的 gem。 -
您确定捆绑程序没有安装最新版本?我认为是的。
-
bundle update -
@Aetherus 更新一切。
标签: ruby bundler bundle-install