Windows环境下Ruby ffi Gem安装失败问题求助
解决ffi 1.9.25在Bundler更新时的原生扩展构建失败问题
以下是针对性的环境配置解决方案:
确保Bundler获取到正确的环境变量
单独执行gem install ffi --platform=ruby成功,说明libffi的环境变量在当前终端生效,但Bundler可能未继承这些变量。- 在ucrt64终端中,先检查
PKG_CONFIG_PATH是否包含libffi的pkgconfig路径:echo $PKG_CONFIG_PATH - 如果输出未包含
/ucrt64/lib/pkgconfig,手动添加后再执行Bundler命令:export PKG_CONFIG_PATH=/ucrt64/lib/pkgconfig:$PKG_CONFIG_PATH bundle update --bundler
若使用Windows cmd/PowerShell,先设置环境变量再运行:
set PKG_CONFIG_PATH=C:\msys64\ucrt64\lib\pkgconfig bundle update --bundler- 在ucrt64终端中,先检查
强制Bundler使用ffi的构建参数
直接给Bundler指定ffi的编译依赖路径,与单独安装gem时的环境一致:bundle config build.ffi --with-ffi-dir=C:/msys64/ucrt64 --with-ffi-lib=C:/msys64/ucrt64/lib --with-ffi-include=C:/msys64/ucrt64/include配置完成后,再次执行
bundle update --bundler。确认Ruby DevKit与msys2 ucrt64的关联
- 运行Ruby自带的
ridk enable命令,在弹出的选项中选择对应ucrt64环境,确保Ruby与msys2工具链绑定。 - 或者直接打开ucrt64终端,在终端内启动Ruby环境(例如执行
C:\Ruby32-x64\bin\ruby.exe -v确认可用),再运行Bundler更新命令。
- 运行Ruby自带的
尝试指定Bundler版本
部分新版本Bundler可能存在环境检测问题,可先安装稳定版本的Bundler再尝试更新:gem install bundler -v 2.4.22 bundle _2.4.22_ update --bundler
内容的提问来源于stack exchange,提问作者Foad S. Farimani
相关产品推荐
相关产品推荐

