ruby-on-rails - 如何停止有关 ffi 的 rubocop 错误
问题描述
使用 wsl 在 Rubymine 窗体窗口中工作并使用 wsl 终端运行所有内容我一直从 rubocop 收到以下错误:
Error:/home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/spec_set.rb:91:in `block in materialize': Could not find ffi-1.15.1 in any of the sources (Bundler::GemNotFound)
from /home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/spec_set.rb:85:in `map!'
from /home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/spec_set.rb:85:in `materialize'
from /home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/definition.rb:170:in `specs'
from /home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/definition.rb:237:in `specs_for'
from /home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/definition.rb:226:in `requested_specs'
from /home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/runtime.rb:108:in `block in definition_method'
from /home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/runtime.rb:20:in `setup'
from /home/dor/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler.rb:107:in `setup'
from /home/dor/ ...
这很烦人。捆绑包一直要求捆绑安装以及我运行但没有帮助的此错误
解决方案
对于您正在运行的任何命令,请确保您使用的是bundle exec
,例如:
$ bundle exec rubocop
接下来,您可以尝试以下操作:
- 手动安装
ffi
以查看您的 Gem 路径是否设置正确:gem install ffi
- 重新安装捆绑器:
gem uninstall bundler && gem install bundler
- 删除
Gemfile.lock
文件(进行备份)并重新运行bundle install
. - 运行
bundle update
或bundle update ffi
- 试试
bundle --full-index
(参考)
我看到您没有使用 JRuby,但我也遇到了必须使用bundler
(使用R)而不是bundle
JRuby 的问题,因此您可以尝试一下。
特别是对于 WSL,我还发现其他人对 Jekyll 和 WSL 有这个问题。解决方案是修复 GEM 路径。按照此处的说明进行操作。
如果这些对您仍然没有帮助,请描述您如何在 WSL 上安装 Ruby,以及您使用的哪个命令会产生此错误。
推荐阅读
- reactjs - React JS路由路径不起作用
- sql - 删除项目“WHEN NOT MATCHED BY SOURCE”
- r - 将空间点与 180° 子午线相交?
- c# - 将属性名称转换为有效的 json 字段标识符
- php - Laravel 5 批量更新记录,批量更新记录
- javascript - 使用 Redux 存储进行流类型检查是如何工作的?
- amazon-web-services - 如何在具有私有拓扑和内部负载平衡器的 AWS 上连接到我的集群?
- php - 具有用户阻止功能的 PHP 多 IF 条件
- node.js - 使用javascript更新firebase实时数据库时如何运行c ++可执行文件?
- java - IBM WebSphere CPU 减少导致性能问题 - 应用程序和操作系统崩溃