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

安装bcrypt-ruby 3.0.1时报gem原生扩展构建失败,如何解决?

bcrypt-ruby 3.0.1 安装报错解决方案

报错根本原因

bcrypt-ruby 3.0.1为2012年发布的老旧版本,未适配Ruby 2.7+的C扩展API规范,与你使用的Ruby 2.7.2存在兼容性问题,会在编译原生扩展阶段触发C99语法检查报错。

可用解决方案

方案1(优先推荐,生产环境可用)

升级bcrypt-ruby到兼容Ruby 2.7的版本,3.1.2及以上版本均已修复该兼容问题,且API与3.0.1完全一致,不会影响现有业务逻辑:

  • 直接安装执行命令:
    gem install bcrypt-ruby -v '~> 3.1.2'
  • 若在Rails/Bundler项目中,修改Gemfile对应配置为:
    gem 'bcrypt-ruby', '~> 3.1.2', require: 'bcrypt'
    修改后执行bundle install即可。

方案2(仅适用于必须使用3.0.1版本的测试场景)

临时关闭编译阶段的严格语法检查,强制编译通过:
执行命令:
gem install bcrypt-ruby -v '3.0.1' -- --with-cflags="-Wno-error=implicit-function-declaration -Wno-shorten-64-to-32"

注意:该方案存在潜在的运行时崩溃风险,禁止在生产环境使用。

方案3(依赖缺失补充)

如果上述方案执行后仍报错,先补充系统编译依赖:

  • Mac系统执行:xcode-select --install 安装Xcode命令行工具
  • Debian/Ubuntu系统执行:sudo apt install build-essential 安装基础编译套件
    依赖安装完成后再重新执行对应的gem安装命令即可。

内容的提问来源于stack exchange,提问作者Sara Fuerst

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:30:05