问题描述
使用 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
(ref)
我看到您没有使用 JRuby,但我也遇到了问题,我必须使用 bundler
(带有 R)而不是 bundle
JRuby,所以你可以试试。
特别是对于 WSL,我还发现其他人在使用 Jekyll 和 WSL 时遇到了这个问题。解决方案是修复 GEM 路径。按照说明 here。
如果这些仍然对您没有帮助,请描述您是如何在 WSL 上安装 Ruby 的,以及您使用的导致此错误的命令。