M2 Mac(Ventura 13.4)运行Rails命令报dyld缺失符号错误求助
解决M2芯片MacBook(Ventura 13.4)上Rails命令报
dyld: missing symbol called错误 针对你遇到的问题,以下是几个针对性的解决步骤:
检查并切换Node版本
Rails 6.1.7.2对Node版本有兼容要求(推荐14.x-16.x),M2 Mac默认安装的高版本Node(如18+)可能导致依赖库符号缺失。- 查看当前Node版本:
node -v - 若版本高于16,用版本管理工具(如nvm)切换到16.x:
nvm install 16 nvm use 16 - 重新执行
bundle install后,再尝试rails s
- 查看当前Node版本:
重新编译arm64架构的gem依赖
M2是arm64架构,部分gem的原生扩展可能是基于x86编译的,导致符号不匹配:- 删除本地bundle缓存:
rm -rf vendor/bundle - 以arm64架构重新安装依赖:
arch -arm64 bundle install - 确保使用的是原生arm64终端(而非Rosetta模拟的x86终端)
- 删除本地bundle缓存:
确认Ruby为arm64版本
若Ruby是通过Rosetta安装的x86版本,会和M2架构冲突:- 检查Ruby架构:
ruby -e 'puts RUBY_PLATFORM' - 若输出为
x86_64-darwin22,则需重新安装arm64版本的Ruby(以rbenv为例):rbenv uninstall 3.1.3 arch -arm64 rbenv install 3.1.3 rbenv local 3.1.3 - 重新执行
bundle install
- 检查Ruby架构:
清理dyld系统缓存
系统缓存可能导致符号查找异常:- 删除dyld缓存:
sudo rm -rf /Library/Caches/com.apple.dyld - 重启Mac后再尝试Rails命令
- 删除dyld缓存:
内容的提问来源于stack exchange,提问作者b.herring
相关产品推荐
相关产品推荐

