ruby-on-rails - 如何修复 Bundler::LockfileError?
问题描述
我在 vim 中运行 rails test 时遇到问题。当我:Rails test
从 vim 发出它返回
/usr/local/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler/lockfile_parser.rb|72| 在 `warn_for_outdated_bundler_version' 中:您必须在此锁定文件中使用 Bundler 2 或更高版本。(Bundler::LockfileError)
一些可能有助于回答的终端命令输出
which -a bundle
/home/my_user_name/.rbenv/shims/bundle
bundle env
Bundler 2.0.1 Platforms ruby, x86_64-linux Ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux] Full Path /home/username/.rbenv/versions/2.4.1/bin/ruby Config Dir /home/username/.rbenv/versions/2.4.1/etc RubyGems 3.0.2 Gem Home /home/username/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0 Gem Path /home/username/.gem/ruby/2.4.0:/home/username/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0 User Path /home/username/.gem/ruby/2.4.0 Bin Dir /home/username/.rbenv/versions/2.4.1/bin Tools Git 2.17.1 RVM not installed rbenv rbenv 1.0.0-21-g9fdce5d chruby not installed
解决方案
我假设 vim 是针对与您当前在终端中使用的不同的 ruby 构建的。因此,当从其中执行代码时,它也会使用不同的 ruby。
您可以通过发出以下命令来验证该假设:
:rubydo puts RUBY_VERSION
在 vim 中查看该版本是否与终端中的 ruby 匹配。我假设,当您在终端中使用基于 rbenv 的 ruby 时,vim 是针对系统 ruby 构建的。
如果假设成立,您可以针对您的 rbenv ruby 重建 vim,或者可以通过 rbenv 短暂切换到系统 ruby 并为其运行 a gem install bundler
。
推荐阅读
- postgresql - 在 Postgres 中使用 WITH RECURSIVE 时,WHERE 子句中不允许 SELECT MAX 子查询
- python - 如何在不覆盖现有值的情况下将 JSON 写入文件?我想扩展一个列表
- java - 递归二进制搜索列表:“不是语句”?如何?
- list - 如何在机器人框架中将全局变量或套件变量作为列表?
- python - 使用 Pandas 将两个字符串行合并为一个
- reactjs - 我想在我的项目中实现材料 ui 轮播
- mysql -
从 MySQL 工作台获取数据时 - html - 手机(iphone)查看问题
- kotlin - asp.net core api从kotlin获取空值
- javascript - 迭代数据,包括盖茨比中的图像