Bundler 2.0.1 已安装,Rails 说 "must use Bundler 2 or greater"?
Bundler 2.0.1 installed, Rails says "must use Bundler 2 or greater"?
我是 Rails 新手,正在尝试 Rails DigitalOcean droplet。安装似乎工作正常,但当我尝试生成脚手架时收到一条奇怪的错误消息:
DO 10:48 Rails/simple (master) → rails generate scaffold User name:string email:string
Traceback (most recent call last):
5: from bin/rails:3:in `<main>'
4: from bin/rails:3:in `load'
3: from /home/tony/rails/simple/bin/spring:10:in `<top (required)>'
2: from /home/tony/rails/simple/bin/spring:10:in `new'
1: from /home/tony/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/lockfile_parser.rb:95:in `initialize'
/home/tony/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
DO 10:49 Rails/simple (master) → bundle list bundler
/home/tony/.rvm/gems/ruby-2.6.0/gems/bundler-2.0.1
DO 10:50 Rails/simple (master) → gem list bundler
*** LOCAL GEMS ***
bundler (2.0.1, default: 1.17.2)
bundler-unload (1.0.2)
rubygems-bundler (1.4.5)
也就是说,目前的Bundlergem是2.0.1版本,但是Rails还是觉得不够
我在网上找不到任何类似的东西。我能看到的唯一危险信号是捆绑器 gem 显示默认版本 1.17.2。我如何开始诊断问题?
我 运行 遇到了同样的问题并通过 gem uninstall bundler
降级解决了它,然后 gem install bundler -v 1.17.3
恢复到最后一个 pre 2 版本。
我在使用不同版本管理器(ASDF、rbenv、rvm)的 3 个独立系统中看到了这个问题,这解决了这个问题。
有一些关于让两个版本都能很好地播放的信息here。此问题的根本原因可能是错误(似乎已修复)
根据下面@MatijsvanZuijlen 的评论和捆绑器文档,您还应该能够指定要在运行时使用哪个版本的捆绑器 bundle _1.17.3_ install
这对我有帮助:gem update --system
更新 ruby 版本 (2.4.6) 后出现问题-
You must use Bundler 2 or greater with this lockfile.
我是这样解决的-
当我检查捆绑器版本 bundler -v
$ Bundler version 1.16.1
我使用 -
更新了 bundlere 版本
$ gem install bundler -v 2.0.1
并解决了问题!
这是我的解决方案:
(如果你有旧版本的 Bundler),运行 命令:
bundle update --bundler
运行命令:
gem update --system
运行耙子
rake db:migrate
尝试上述任何解决方案后,重新启动终端 window。
即使我卸载了旧版本,我的终端仍然显示 2 个版本的捆绑器,直到我终止终端并打开一个新的 window。
我是这样解决的:
删除ruby并通过源码安装Ruby2.6.7,软link到/usr/bin/
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.7.tar.gz
tar xvf ruby-2.6.7.tar.gz
./configure
make -j32 && sudo make install
sudo ln -sf /usr/local/bin/ruby /usr/bin/ruby
然后,运行:
bundle install
然后,运行:
sudo bundle exec jekyll serve
对我有用。
我是 Rails 新手,正在尝试 Rails DigitalOcean droplet。安装似乎工作正常,但当我尝试生成脚手架时收到一条奇怪的错误消息:
DO 10:48 Rails/simple (master) → rails generate scaffold User name:string email:string
Traceback (most recent call last):
5: from bin/rails:3:in `<main>'
4: from bin/rails:3:in `load'
3: from /home/tony/rails/simple/bin/spring:10:in `<top (required)>'
2: from /home/tony/rails/simple/bin/spring:10:in `new'
1: from /home/tony/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/lockfile_parser.rb:95:in `initialize'
/home/tony/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
DO 10:49 Rails/simple (master) → bundle list bundler
/home/tony/.rvm/gems/ruby-2.6.0/gems/bundler-2.0.1
DO 10:50 Rails/simple (master) → gem list bundler
*** LOCAL GEMS ***
bundler (2.0.1, default: 1.17.2)
bundler-unload (1.0.2)
rubygems-bundler (1.4.5)
也就是说,目前的Bundlergem是2.0.1版本,但是Rails还是觉得不够
我在网上找不到任何类似的东西。我能看到的唯一危险信号是捆绑器 gem 显示默认版本 1.17.2。我如何开始诊断问题?
我 运行 遇到了同样的问题并通过 gem uninstall bundler
降级解决了它,然后 gem install bundler -v 1.17.3
恢复到最后一个 pre 2 版本。
我在使用不同版本管理器(ASDF、rbenv、rvm)的 3 个独立系统中看到了这个问题,这解决了这个问题。
有一些关于让两个版本都能很好地播放的信息here。此问题的根本原因可能是错误(似乎已修复)
根据下面@MatijsvanZuijlen 的评论和捆绑器文档,您还应该能够指定要在运行时使用哪个版本的捆绑器 bundle _1.17.3_ install
这对我有帮助:gem update --system
更新 ruby 版本 (2.4.6) 后出现问题-
You must use Bundler 2 or greater with this lockfile.
我是这样解决的-
当我检查捆绑器版本 bundler -v
$ Bundler version 1.16.1
我使用 -
更新了 bundlere 版本$ gem install bundler -v 2.0.1
并解决了问题!
这是我的解决方案:
(如果你有旧版本的 Bundler),运行 命令:
bundle update --bundler
运行命令:
gem update --system
运行耙子
rake db:migrate
尝试上述任何解决方案后,重新启动终端 window。
即使我卸载了旧版本,我的终端仍然显示 2 个版本的捆绑器,直到我终止终端并打开一个新的 window。
我是这样解决的:
删除ruby并通过源码安装Ruby2.6.7,软link到/usr/bin/
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.7.tar.gz
tar xvf ruby-2.6.7.tar.gz
./configure
make -j32 && sudo make install
sudo ln -sf /usr/local/bin/ruby /usr/bin/ruby
然后,运行:
bundle install
然后,运行:
sudo bundle exec jekyll serve
对我有用。