You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apple M1执行rake db:create报nokogiri x86_64与arm64e架构不兼容错误

问题原因

报错本质是已安装的Nokogiri 1.13.6原生扩展为x86_64(Intel芯片)架构,和M1设备的arm64架构不兼容。之前设置的force_ruby_platform true配置会强制Bundler拉取通用Ruby平台的预编译gem包,默认拉取的是Intel架构版本,不会触发本地原生编译,反而会加剧架构不匹配问题。

解决步骤
  • 第一步:清理错误配置与不兼容gem包
    执行以下命令移除错误配置、卸载架构不匹配的Nokogiri:
    bundle config unset force_ruby_platform
    gem uninstall nokogiri -v 1.13.6
    
    卸载过程如果提示多版本匹配,选择删除所有对应1.13.6版本的文件即可。
  • 第二步:确认运行环境为arm64原生
    先确认当前终端没有开启Rosetta转译:打开终端的「显示简介」,确保「使用Rosetta打开」选项处于未勾选状态。
    再验证rbenv安装的Ruby 2.7.1为arm64原生版本,执行:
    file ~/.rbenv/versions/2.7.1/bin/ruby
    
    如果输出内容包含x86_64,说明当前Ruby是转译版本,需要在原生arm终端下重新执行rbenv install 2.7.1安装原生版本。
  • 第三步:安装编译依赖
    执行Homebrew命令安装Nokogiri编译需要的系统依赖:
    brew install libxml2 libxslt pkg-config
    
  • 第四步:重新安装适配arm64架构的Nokogiri
    配置Nokogiri使用系统库本地编译,再重新安装项目依赖:
    bundle config set build.nokogiri --use-system-libraries
    bundle install
    
  • 第五步:验证修复结果
    安装完成后先验证Nokogiri扩展架构是否正确,执行:
    file ~/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/nokogiri-1.13.6/lib/nokogiri/nokogiri.bundle
    
    输出内容包含arm64即为架构匹配,此时重新执行rake db:create即可正常运行。

注意:如果后续安装其他gem也出现同类架构不匹配报错,只需要卸载对应gem后重新执行bundle install触发本地原生编译即可解决。

内容的提问来源于stack exchange,提问作者Ana María González

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 16:33:16