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

Alpine 3.13环境Ruby2.7.5安装racc v1.6.0 gem原生扩展编译失败

问题原因

这个报错和racc gem本身没有关系,是Alpine 3.13环境缺少编译Ruby原生C扩展的必要组件:默认的精简Alpine镜像不会预装gcc、make等编译工具,也不会带对应Ruby版本的开发头文件,导致mkmf连最基础的编译测试程序都无法生成,所有需要编译原生扩展的gem安装、更新操作都会触发完全一致的错误。
从贴出的mkmf.log也能看出来,失败点就是直接调用gcc编译测试C程序的环节,还没到检测rb_block_call函数的步骤就已经中断。

修复操作
  • 先安装缺失的系统依赖,执行apk命令:
apk add --no-cache build-base ruby-dev

两个包的作用:

  • build-base是Alpine的基础编译工具集元包,会自动装上gcc、g++、make、musl-libc开发文件等所有基础编译组件,正好对应报错里提示的"You have to install development tools first"
  • ruby-dev包含当前Ruby 2.7版本对应的开发头文件(比如编译扩展必须的ruby.h)
  • 如果之前安装racc失败留下了不完整的残留文件,可以先执行清理:
gem uninstall racc -v 1.6.0
  • 之后重新执行安装/更新操作即可:
# 单独安装指定版本racc
gem install racc -v 1.6.0

# 用Bundler管理项目依赖的话,直接执行对应命令即可
bundle install
# 或
bundle update
校验方法

依赖安装完成后,可以先执行gcc --version确认编译器正常可用,再尝试安装任意带原生扩展的gem(比如gem install json),如果能正常走完编译流程,说明环境已经修复,后续安装其他gem也不会再触发同类错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:03:26