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

安装Devise Gem时遭遇Bcrypt安装错误,求解决方案

Devise 安装前置步骤与 bcrypt 安装失败解决方案

一、用 Devise 前的必要前置步骤

Devise 本身没有复杂的前置要求,但它依赖的 bcrypt 属于原生扩展,必须先搞定系统编译环境:

  • 确认 Rails 项目已正常初始化,Ruby 3.1.2 + Rails 7.0.4 与 Devise 4.8.x 版本兼容,你的环境满足要求
  • 安装系统级编译工具:
    • macOS:执行 xcode-select --install 安装 Xcode 命令行工具
    • Debian/Ubuntu 系:执行 sudo apt-get install build-essential libssl-dev ruby-dev 安装编译依赖
    • CentOS/RHEL 系:执行 sudo yum install gcc make openssl-devel ruby-devel 配置依赖环境

二、bcrypt 3.1.18 安装失败的解决办法

1. 补全系统依赖后重试

先把上述系统编译工具安装完整,再重新执行 bundle install,多数情况下可解决问题。

2. 更换兼容的 bcrypt 版本

bcrypt 3.1.18 对 Ruby 3.x 的支持存在小问题,可在 Gemfile 中指定更新的兼容版本:

gem 'bcrypt', '~> 3.1.19'
gem 'devise', '~> 4.8', '>= 4.8.1'

之后执行 bundle install

3. 强制使用纯 Ruby 版 bcrypt

如果原生编译仍失败,直接安装纯 Ruby 版本的 bcrypt:

gem install bcrypt --platform=ruby
bundle install

或给 Bundler 设置编译参数绕过错误:

bundle config set build.bcrypt --with-cflags="-Wno-error=implicit-function-declaration"
bundle install

4. 清理缓存重试

Bundler 缓存可能引发异常,清理后重新安装:

bundle clean --force
bundle install

5. 检查 Ruby 环境

若使用 rbenv、rvm 等版本管理器,确保 Ruby 3.1.2 安装正常:

  • rbenv 用户:执行 rbenv rehash 刷新环境
  • rvm 用户:执行 rvm use 3.1.2 切换版本
    之后重新执行安装命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:00:57