在 Apple ARM 芯片上运行时出现 Ruby ffi 库错误

时间:2021-04-26 14:45:06

标签: ruby-on-rails ruby arm ffi apple-m1

红宝石 2.6.6

我认为当任何 gem 依赖于 ffi gem(在本例中为 taxjar)时,我会收到以下错误。

rake aborted!                                                                                                                                                
TypeError: unable to resolve type 'size_t'                                                                                                                   
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/types.rb:69:in `find_type'               
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/library.rb:585:in `find_type'      
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/library.rb:392:in `block in callback'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/library.rb:392:in `map'                                      
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/ffi-1.9.25/lib/ffi/library.rb:392:in `callback'                                
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-parser-1.2.3/lib/http-parser/types.rb:311:in `<module:HttpParser>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-parser-1.2.3/lib/http-parser/types.rb:3:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-parser-1.2.3/lib/http-parser.rb:7:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-4.4.1/lib/http/response/parser.rb:3:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-4.4.1/lib/http/connection.rb:6:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-4.4.1/lib/http/client.rb:9:in `<top (required)>'                             
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/http-4.4.1/lib/http.rb:8:in `<top (required)>'                                  
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar/api/request.rb:2:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar/api/utils.rb:1:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar/api/api.rb:1:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar/client.rb:1:in `<top (required)>'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/skylight-5.0.1/lib/skylight/probes.rb:175:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `block in require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/gems/activesupport-5.2.5/lib/active_support/dependencies.rb:291:in `require'
/Users/tonybeninate/.rvm/gems/ruby-2.6.6/bundler/gems/taxjar-ruby-56a947d6cde5/lib/taxjar.rb:6:in `<top (required)>'

我猜这可以在更新的 ffi gem(目前在 1.9.25)上解决,但它是一些 gem 的依赖项,并且很好奇是否有人遇到过这个问题,如果可以换一种方式解决吗?

> gem dependency ffi --reverse-dependencies
Gem ffi-1.9.25
  rake (~> 10.1, development)
  rake-compiler (~> 1.0, development)
  rake-compiler-dock (~> 0.6.2, development)
  rspec (~> 2.14.1, development)
  rubygems-tasks (~> 0.2.4, development)
  Used by
    ethon-0.12.0 (ffi (>= 1.3.0))
    ffi-compiler-1.0.1 (ffi (>= 1.0.0))
    rb-inotify-0.9.10 (ffi (>= 0.5.0, < 2))

0 个答案:

没有答案