Windows10下执行bundle install安装json(1.8.1)失败求助
解决Windows 10下安装json 1.8.1失败的问题
我之前在Windows 10环境里踩过一模一样的坑,json 1.8.1这个老版本在Windows下的编译问题确实挺头疼的,给你分享几个亲测有效的解决办法:
方法一:用指定编译参数强制安装
json 1.8.1对Windows的编译环境有特殊要求,直接安装会因为优化参数报错,你可以试试带编译参数执行安装:
- 打开MSYS2的专属终端(别用普通CMD,要启动MinGW64 Prompt或者MSYS2 Shell)
- 运行这条命令:
后面的编译参数是专门解决老版本json在Windows编译时的优化逻辑冲突的,亲测能解决大部分编译失败的情况。gem install json -v '1.8.1' --platform=ruby -- --with-cflags="-O2 -fno-tree-dce -fno-optimize-sibling-calls"
方法二:检查Ruby版本兼容性
json 1.8.1是很老的包了,和Ruby 2.5及以上版本兼容性很差。你可以:
- 先查当前Ruby版本:
ruby -v - 如果你的Ruby版本高于2.4,建议暂时切换到Ruby 2.3或2.4版本(用rbenv或者RubyInstaller的版本管理器都能快速切换),再尝试安装这个json版本。
方法三:手动安装预编译gem包
如果编译始终失败,你可以找针对Windows预编译好的gem包:
- 下载和你的Ruby架构(x86/x64)匹配的
json-1.8.1-x64-mingw32.gem或json-1.8.1-x86-mingw32.gem文件 - 用本地安装命令:
注意一定要选对和Ruby版本、系统架构完全匹配的包,不然依然会报错。gem install --local 你的gem文件路径/json-1.8.1-x64-mingw32.gem
方法四:更新Bundler并调整gem源
有时候Bundler版本过旧或者gem源不稳定也会导致安装失败:
- 先更新Bundler到最新版:
gem update bundler - 换国内稳定的gem源执行bundle安装:
bundle install --source https://gems.ruby-china.com
如果以上方法都没用,建议你把gem install json -v '1.8.1'执行时的完整错误日志贴出来,里面会有更具体的编译报错细节(比如缺少依赖、架构不匹配等),能更精准地定位问题。
内容的提问来源于stack exchange,提问作者Kawaki
相关产品推荐
相关产品推荐

