Mac Mini M1运行Rails项目渲染视图时触发Symbol not found报错
问题原因
该报错由Apple M1芯片环境下低版本mini_racer(0.2.9)依赖的libv8库与ARM架构不兼容导致,Rails渲染视图时需要调用JS运行时,触发了对应缺失符号的加载错误。
解决方案
方案1:升级mini_racer到兼容M1的版本
在Gemfile中修改mini_racer版本声明:gem 'mini_racer', '~> 0.4.0'执行更新命令:
bundle update mini_racer升级完成后重启Rails服务验证即可。
方案2:替换JS运行时为Node.js
若项目有依赖约束无法升级mini_racer,可直接卸载mini_racer,改用Node.js作为Rails的JS运行时:- 移除Gemfile中的mini_racer相关声明
- 执行
bundle install更新依赖 - 本地安装Node.js后执行
node -v验证版本正常,再启动Rails服务即可。
方案3:通过Rosetta 2转译运行
临时兼容老版本依赖可直接用Rosetta 2转译终端环境:- 访达中找到「终端」应用,右键选择「显示简介」
- 勾选「使用Rosetta打开」,重启终端后重新运行项目启动命令即可。
内容的提问来源于stack exchange,提问作者WITO
相关产品推荐
相关产品推荐

