如何将Rails项目的bcrypt版本从3.1.20回退至3.1.11?
恢复bcrypt到3.1.11版本的解决方法
步骤1:确认Gemfile的版本指定
确保你的Gemfile中bcrypt是精确指定版本,格式如下:
gem 'bcrypt', '3.1.11'
如果之前是~>这类模糊匹配(比如~> 3.1),必须改成精确版本号,避免Bundle自动选择更高版本。
步骤2:卸载本地已安装的高版本bcrypt
打开终端执行以下命令,卸载3.1.20版本:
gem uninstall bcrypt -v 3.1.20
如果提示存在多个版本,选择卸载3.1.20即可。
步骤3:重新安装指定版本
执行Bundle安装命令,强制使用Gemfile指定的版本:
bundle install --redownload
--redownload参数会让Bundle重新下载并安装所有依赖,确保忽略本地缓存的高版本。
可选:处理潜在的依赖冲突
如果执行后仍无法安装3.1.11,说明项目中存在其他Gem依赖更高版本的bcrypt。此时需要:
- 运行
bundle why bcrypt查看哪些Gem依赖bcrypt - 调整对应Gem的版本(在Gemfile中指定兼容3.1.11的版本),或者确认线上环境的对应Gem版本是否与本地一致
执行完成后,检查Gemfile.lock文件,确认bcrypt的版本已变为3.1.11,本地环境的bcrypt版本也会同步恢复。
内容的提问来源于stack exchange,提问作者daveasdf_2
相关产品推荐
相关产品推荐

