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

M2 Mac升级Rails5至6后执行命令报错dyld[...]: missing symbol called

解决M2芯片Mac上Rails 6升级后dyld[...]: missing symbol called错误

核心原因

M2芯片为arm64架构,mysql2 gem编译时的架构不匹配、webpacker依赖的Node架构冲突,导致出现缺失符号的动态链接错误。

解决方案步骤

1. 重新编译arm64版本的mysql2 gem

  • 先卸载所有已安装的mysql2版本:
    gem uninstall mysql2 -a
    
  • 若你通过brew安装MySQL,用以下命令指定arm64架构重新安装对应版本的mysql2:
    gem install mysql2 -v '0.5.5' \
      -- --with-mysql-config=$(brew --prefix mysql)/bin/mysql_config \
      --with-cflags="-arch arm64" \
      --with-ldflags="-arch arm64"
    
  • 若MySQL不是brew安装,替换$(brew --prefix mysql)为你的MySQL实际安装路径即可。

2. 确保Node为arm64版本并修复webpacker依赖

  • 卸载x64版本的Node,从Node.js官网下载arm64架构的安装包安装,或用nvm安装适配版本:
    nvm uninstall <你的x64版本号>
    nvm install --lts --arch arm64
    
  • 进入项目目录,清理并重新安装前端依赖:
    rm -rf node_modules yarn.lock
    yarn install
    rails webpacker:install
    

3. 验证终端与Ruby的架构一致性

  • 确保终端未使用Rosetta转译:右键终端应用→显示简介,取消勾选「使用Rosetta打开」
  • 若之前的Ruby是通过Rosetta编译的,重新编译arm64版本的Ruby:
    rbenv uninstall 3.1.2
    CC="clang -arch arm64" rbenv install 3.1.2
    

验证操作

执行以下命令创建新的MySQL项目并测试:

rails new test_mysql -d mysql
cd test_mysql
rails s

内容的提问来源于stack exchange,提问作者GTO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:35:11