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

如何解决WSL运行Ruby on Rails时出现“LoadError: cannot load such file -- 2.5/ffi_c”错误

排查解决步骤

  • 首先安装系统层面的libffi依赖,以Ubuntu/Debian系为例执行:
    sudo apt update && sudo apt install -y libffi8 libffi-dev
    如果你用的是其他WSL发行版,对应安装libffi.so.8对应的系统包即可。
  • 刷新动态链接库缓存并验证依赖:执行sudo ldconfig刷新缓存后,运行ldd /home/me/.rvm/gems/ruby-2.5.7/gems/ffi-1.11.1/lib/ffi_c.so查看ffi_c.so的所有动态依赖是否都能被正常识别。如果仍提示libffi.so.8找不到,确认你之前创建的软链接路径是否正确:软链接必须放在系统动态库搜索目录(如/usr/lib、/usr/lib/x86_64-linux-gnu)下,不能在任意工作目录创建,正确的命令参考:
    sudo ln -s /usr/lib/x86_64-linux-gnu/libffi.so.8 /usr/lib/x86_64-linux-gnu/libffi.so.1.8
    你可以先用find /usr/lib -name "libffi.so*查找你系统中libffi.so.8的实际存储路径,再对应创建软链接。
  • 重装ffi gem时强制使用系统libffi编译,避免gem内置的源码编译出现兼容问题:
    先卸载原有版本:gem uninstall ffi -v 1.11.1 --all
    再指定参数编译安装:gem install ffi -v 1.11.1 -- --enable-system-libffi
  • 排查Spring缓存问题:你的报错栈中存在Spring相关调用,先执行bin/spring stop关闭Spring缓存,再重新运行命令测试,也可以临时禁用Spring运行:DISABLE_SPRING=1 rails apartment:create
  • 排除WSL挂载盘兼容问题:不要把Rails项目放在/mnt/c的Windows挂载目录中运行,WSL对Windows挂载盘的文件权限、动态库加载都存在已知兼容问题,把项目复制到WSL原生的Linux目录(如/home/me/下的自建目录)后再运行测试。
  • 如果以上步骤都无效,确认你的WSL发行版和旧版本Ruby的兼容性:Ruby 2.5已经停止维护多年,如果你用的是Ubuntu 22.04及以上版本的WSL,系统默认依赖已经不兼容旧版Ruby,可以尝试将WSL发行版降级到Ubuntu 20.04,或者替换RVM为rbenv安装Ruby,规避RVM的依赖封装问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:45:00