微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何停止关于 ffi 的 rubocop 错误

如何解决如何停止关于 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 updatebundle update ffi
  • 试试bundle --full-index (ref)

我看到您没有使用 JRuby,但我也遇到了问题,我必须使用 bundler(带有 R)而不是 bundle JRuby,所以你可以试试。

特别是对于 WSL,我还发现其他人在使用 Jekyll 和 WSL 时遇到了这个问题。解决方案是修复 GEM 路径。按照说明 here

如果这些仍然对您没有帮助,请描述您是如何在 WSL 上安装 Ruby 的,以及您使用的导致此错误的命令。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。