所以它抱怨heroku上安装的bundler版本比你用来创建你的版本旧Gemfile.lock
在你的开发机器上。
您可能可以忽略该警告 - 在大多数情况下,使用比您用于创建版本的捆绑程序稍旧的版本进行安装Gemfile.lock
就很好了。
最近bundler添加了bundler版本的记录Gemfile.lock
,然后是随后的警告,因为在某些情况下,添加到新版本的捆绑器中的新功能可能已被用来创建Gemfile.lock
,这样使用旧版本安装可能无法正常工作。所以有时这可能是一个问题。虽然通常不会。
看起来您无法使用不同版本的捆绑器来安装 heroku https://devcenter.heroku.com/articles/bundler-version.
如果您想让警告消失,您可以选择在本地使用与 heroku 使用相同版本的捆绑器。弄清楚 heroku 正在使用的捆绑程序的确切版本有点困难——如果该警告行实际上告诉您所涉及的捆绑程序的两个不同版本,那就太好了!但事实并非如此。
这个 Heroku 支持文档 https://devcenter.heroku.com/articles/ruby-support#libraries表明heroku正在使用bundler1.11.2
。 (现在;将来可能会改变!)。从您的日志中我们可以看到您正在使用1.12.4
。如果你想使用1.11.2
相反,为了避免出现警告,请删除系统上安装的所有版本的捆绑程序:
gem uninstall bundler
然后安装1.11.2
具体来说:
gem install bundler -v 1.11.2
一般来说,当您使用bundle
命令,它将使用您系统上安装的最新版本,因此要确保您始终使用1.11.2
,确保您的系统上安装的是最新版本,并且切勿安装更高版本。
然后你需要重新生成你的Gemfile.lock
这样它就说它捆绑了1.11.2
,不再收到警告。这是一种痛苦,最简单的事情可能是编辑Gemfile.lock
手动,然后只使用捆绑器1.11.2
.
使用捆绑器1.11.2
即使您确实想在系统上安装更高版本的捆绑程序,那么每次您执行bundle install
or bundle update
(对于无论如何都会部署到 heroku 的应用程序),您可以这样做:
bundle _1.11.2_ install
等等。这将告诉 rubygems 使用捆绑程序版本运行捆绑安装命令1.11.2
,然后该版本将被记录在Gemfile.lock
,并且您不会收到警告。
这有点乱。许多开发人员可能只是忽略该警告。正常情况下应该没问题。