ruby-on-rails - bundler : You must use Bundler 2 or greater with this lockfile

标签 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: 

它说'远程:!您必须将此锁定文件使用 Bundler 2 或更高版本。

But my Bundler version is 2.0.0.pre.1



不知道该怎么办,我尝试卸载 bundle 并重新安装,我删除了 Gemfile.lock 并输入 bundle再次

最佳答案

我有过类似的经历。
这是我解决它的方法
显示 bundler gem 的所有本地 gem 列表

gem list bundler
备注 : 上面的命令是针对rbenv版本管理器的,rvm的可能会有所不同
这将显示本地安装的 bundler gem 的版本
bundler (2.1.4, default: 1.17.2)
备注 :您的版本可能与此处的版本不同
如果您没有在本地安装 bundler 版本 2,则运行
gem install bundler
gem install bundler -v 2.1.4
备注 : 替换 2.1.4使用您要安装的版本
如果您已经在本地安装了 bundler version 2,或者刚刚安装了它,那么您只需在本地安装 RubyGems Package Manager 的更新。为此,请运行
gem update --system
然后最后运行
bundle update --bundler
对于 Ruby on Rails 中的 Docker 项目
如果您在尝试使用 Docker 构建应用程序时遇到此问题,只需执行以下操作:
  • 删除 Gemfile.lock文件
  • 不要通过运行 bundle install 再次创建它.
  • 运行您的 docker builddocker-compose build适当的命令来构建您的项目。

  • 这将重新创建 Gemfile.lock文件并在 Gemfile.lock 中设置您的项目所需的适当版本的捆绑器文件。
    备注 :作为旁注,您也可以将此环境变量添加到您的 Dockerfile定义了 Bundler 版本。
    ENV BUNDLER_VERSION=2.1.4
    
    仅此而已。
    我希望这会有所帮助。

    关于ruby-on-rails - bundler : You must use Bundler 2 or greater with this lockfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53231667/

    相关文章:

    ruby-on-rails - rails 3 与回形针和多个模型的多态关联

    css - 在 heroku 上发布部署 rails 应用程序

    python - redis 队列中的并发

    ruby-on-rails - Rails,Heroku 不加载我的库

    ruby-on-rails-5 - 使用 aasm gem 动态设置初始状态

    ruby-on-rails - 如何通过 Grape API 获取路由

    ruby-on-rails - (rails) 如何验证上传的 .txt 文件是否不是图像文件?

    Javascript 未在 Rails View 部分中执行

    ruby-on-rails - 如何在默认范围内按相关型号订购? -- rails 3.1

    ruby-on-rails - 如何从Rails 5日志的SQL部分过滤敏感参数?