在苹果M1芯片上运行rake db:create时出现“mach-o文件,但架构不兼容(拥有'x86_64',需要'arm64e')”错误。

6
当我试图创建我的数据库时,出现了这个错误。
$ rake db:create
rake aborted!
LoadError: dlopen(/Users/agonzalez/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/nokogiri-1.13.6/lib/nokogiri/nokogiri.bundle, 0x0009): tried: '/Users/agonzalez/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/nokogiri-1.13.6/lib/nokogiri/nokogiri.bundle' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')) - /Users/agonzalez/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/nokogiri-1.13.6/lib/nokogiri/nokogiri.bundle
/Users/agonzalez/Documents/join/config/application.rb:7:in `<top (required)>'
/Users/agonzalez/Documents/join/Rakefile:4:in `require_relative'
/Users/agonzalez/Documents/join/Rakefile:4:in `<top (required)>'

Caused by:
LoadError: cannot load such file -- /Users/agonzalez/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/nokogiri-1.13.6/lib/nokogiri/2.7/nokogiri
/Users/agonzalez/Documents/join/config/application.rb:7:in `<top (required)>'
/Users/agonzalez/Documents/join/Rakefile:4:in `require_relative'
/Users/agonzalez/Documents/join/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

我已经尝试过了

bundle config set force_ruby_platform true

我的 Ruby 版本是 ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [-darwin21]

Bundle 版本为 2.1.4

Rails 版本为 5.2.7

Nokogiri 版本为 nokogiri-1.13.6

2个回答

3

我遇到了类似的问题,最终解决方法是卸载nokogiri,然后使用特定平台重新安装它,步骤如下:

gem uninstall nokogiri

gem install nokogiri -v 1.13.6 --platform arm64-darwin

这让我暂时恢复了运行。如果将来进行bundle install,我怀疑它可能会再次出现问题,也许可以通过编辑Gemfile来修复它,但我不确定该如何操作。


-1

以上的答案对我没有任何影响。 按照以下步骤可以解决问题:

  1. :bundle config --global build.ffi --enable-libffi-alloc
  2. :rm -rf ~/.bundle/vendor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接