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

升级Ruby至2.7.4后启动Rails报错Symbol not found: __ZN6libdap5ErrorD1Ev如何解决

问题原因

错误核心是本地系统GDAL依赖与gdal-ruby gem编译版本不匹配,和Ruby、rbenv、bootsnap均无关。错误日志中Symbol not found: __ZN6libdap5ErrorD1Ev的提示说明:系统安装的GDAL动态库libgdal.28.dylib依赖的libdap接口,和当前系统实际安装的libdap.27.dylib版本不兼容,导致动态链接失败,gdal-ruby gem无法正常加载。

排查解决步骤
  • 第一步:修复系统层面的依赖匹配问题
    执行以下命令更新brew包索引,重装GDAL和libdap确保两者版本兼容:
    brew update
    brew reinstall gdal libdap
    
  • 第二步:重新编译gdal-ruby gem
    之前安装的gdal-ruby是基于旧版本GDAL编译的,动态链接地址已失效,需要卸载后重新安装:
    # 进入项目目录后执行
    gem uninstall gdal-ruby
    bundle install
    
  • 第三步:清理进程缓存后验证
    停止spring缓存进程,避免加载旧的依赖路径:
    spring stop
    rails c
    
额外排查方向

如果以上操作后问题仍存在,可执行gdalinfo --version查看当前系统GDAL版本,确认和项目gdal-ruby gem要求的版本是否匹配,若gem依赖特定版本GDAL,用brew安装对应版本后重新编译gem即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:18:03