MacOS Big Sur 11.2.3运行Jekyll报libruby.3.0.dylib未加载错误求助
问题本质
- 报错核心是
ffi_c.bundle原生扩展的动态库路径硬编码指向了Homebrew安装的Ruby目录下的libruby.3.0.dylib,但你当前运行Jekyll用的是rbenv管理的Ruby,这个路径下根本不存在对应的动态库文件,直接触发加载失败。 - 你之前的操作残留了大量跨环境的安装残留:Homebrew装的Ruby下编译的gem包和rbenv环境不兼容,加上
.zshrc里残留的全局库路径配置,会持续干扰原生扩展的编译过程,导致反复重装都解决不了问题。
分步修复流程
- 彻底清理残留的不兼容gem
依次执行命令:gem uninstall ffi交互提示出现时选择全部版本卸载gem uninstall sassc同样选择全部版本卸载- 手动检查
~/.gem/ruby/3.0.0/gems目录,删除残留的ffi、sassc相关文件
- 修正Shell配置
打开~/.zshrc文件,删除以下3行全局配置:
执行export LDFLAGS="-L/usr/local/opt/libffi/lib" export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" export PATH="$HOME/.gem/ruby/3.0.0/bin:$PATH"source ~/.zshrc让配置生效,确保rbenv完全接管当前Shell的Ruby版本解析 - 验证当前Ruby环境正常
依次执行验证命令:which ruby输出必须为/Users/tintin/.rbenv/shims/rubyruby -v输出为rbenv安装的3.0.0版本
- 重新编译安装关联依赖
依次执行:gem install ffi让ffi完全基于当前rbenv的Ruby环境编译,绑定正确的动态库路径gem install jekyll全量重装Jekyll及关联依赖
- 效果验证
执行jekyll -v,可正常打印版本号即修复完成。
注意:不要在rbenv管理的Ruby环境里残留指向Homebrew目录的全局
LDFLAGS/PKG_CONFIG_PATH,这类配置会让原生扩展编译时优先链接Homebrew的库文件,从根源上导致路径绑定错误。
内容的提问来源于stack exchange,提问作者Gizat
相关产品推荐
相关产品推荐

