Rails执行bundle install报错:json(1.8.6)原生扩展构建失败
解决bundle install时json 1.8.6原生扩展构建失败的问题
我之前维护老Rails项目的时候碰到过一模一样的问题!这本质是你的系统缺少Ruby的开发头文件和编译依赖,导致gem没法构建原生扩展。下面分系统给你对应解决方案:
1. Debian/Ubuntu 系列(含Linux Mint、Pop!_OS等)
直接安装对应Ruby版本的开发包就行:
sudo apt-get install ruby2.3-dev
注意:如果你的Ruby版本不是2.3.x,把命令里的ruby2.3-dev换成对应版本的包,比如ruby2.7-dev或ruby3.1-dev。
2. RedHat/CentOS/Fedora 系列
安装ruby-devel包:
# CentOS/RHEL sudo yum install ruby-devel # Fedora 较新版本用dnf sudo dnf install ruby-devel
3. macOS系统
首先确保Xcode命令行工具已经安装(这是编译原生扩展的基础):
xcode-select --install
如果是用rbenv/rvm这类版本管理工具装的Ruby,建议重新安装对应版本的Ruby(会自动带上依赖),或者用Homebrew安装ruby-build辅助:
brew install ruby-build
最后验证步骤
等依赖装好后,先单独安装json 1.8.6确保成功:
gem install json -v '1.8.6'
这个命令跑通之后,再执行bundle install就能顺利完成了。
补充一句:json 1.8.6是比较老的版本,它依赖原生编译来提升性能,而默认的Ruby安装通常只包含运行时文件,不会带编译所需的头文件,所以必须单独装开发包才行。
内容的提问来源于stack exchange,提问作者mkp24
相关产品推荐
相关产品推荐

