Ped*_*dro 25 ruby-on-rails heroku ruby-on-rails-5 heroku-cli
我正在使用heroku,每当我尝试推送我的应用程序时,此消息显示出来:
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote:
remote: !
remote: ! You must use Bundler 2 or greater with this lockfile.
remote: !
remote: /tmp/d20181109-104-g861yi/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
remote: from /tmp/d20181109-104-g861yi/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:95:in `initialize'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:130:in `new'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:130:in `block in parse_gemfile_lock'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:18:in `block (2 levels) in instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:40:in `yield_with_block_depth'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:17:in `block in instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/vendor/ruby/heroku-18/lib/ruby/2.5.0/benchmark.rb:308:in `realtime'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:16:in `instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:86:in `instrument'
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to my-proyect-1234.
remote:
Run Code Online (Sandbox Code Playgroud)
它说'远程:!您必须使用此锁定文件使用Bundler 2或更高版本.
但我的Bundler版本是2.0.0.pre.1
不知道该怎么做,我尝试卸载bundle并再次安装它,我擦除了Gemfile.lock并bundle
再次输入
小智 29
派对有点晚了,但我今天也遇到了这个,这个解决方案避免了卸载Bundler:只是运行
heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2
Run Code Online (Sandbox Code Playgroud)
按照讨论的问题捆扎机这里.
Pro*_*ton 26
我也有类似的经历。
这是我解决的方法
显示捆绑器宝石的所有本地宝石的列表
gem list bundler
Run Code Online (Sandbox Code Playgroud)
N / B:上面的命令用于rbenv版本管理器,用于rvm的命令可能有所不同
这将显示本地安装的bundler gem的版本
bundler (2.0.2, default: 1.17.2)
Run Code Online (Sandbox Code Playgroud)
如果本地没有安装捆绑软件版本2,请运行
gem install bundler
Run Code Online (Sandbox Code Playgroud)
要么
gem install bundler -v 2.0.2
Run Code Online (Sandbox Code Playgroud)
如果您已经在本地安装或刚刚安装了捆绑软件版本2,则只需在本地安装RubyGems Package Manager的更新即可。为此,运行
gem update --system
Run Code Online (Sandbox Code Playgroud)
然后最后运行
bundle update --bundler
Run Code Online (Sandbox Code Playgroud)
就这样。
我希望这有帮助。
S.Y*_*dav 19
我在本地机器(开发)上遇到了同样的问题-
您必须将此捆绑文件使用Bundler 2或更高版本。
问题出在gemfile.lock上,因为我的本地捆绑软件版本和项目捆绑软件版本不匹配!这是解决方案-
bundle install
小智 6
我通过运行gem uninstall bundler
删除 2.0.0.pre.1、重命名 Gemfile.lock 文件(将其从使用中删除)然后运行bundle install
重新安装 gemfiles 解决了这个问题。就我而言,我已经可以访问 heroku 安装的早期捆绑程序版本(因此当我运行时gem uninstall
,我会看到所有可用版本并选择删除 2.0.0.pre.1)。
即使系统上有 bundler 2,在使用 Ruby 2.6 部署应用程序时仍然会发生此错误,因为 Ruby 2.6 附带了默认版本的 bundler。
如果您使用的是 Ruby 2.6,请升级到 Ruby 2.6.1 以避免此问题。
Ruby 2.6.0则不会出现这个问题。使用 bin 存根时会错误地调用默认版本的 Bundler。欲了解更多详情,请参阅以下链接
解决方案: Bundler 2 在系统上可用并且是最新版本,因此应该调用它而不是默认的捆绑程序版本。
更新 Rubygems
gem update --system
Run Code Online (Sandbox Code Playgroud)
更新捆绑程序
gem install bundler
Run Code Online (Sandbox Code Playgroud)
更新项目中的 Gemfile.lock
bundler update --bundler
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33131 次 |
最近记录: |