Ruby 2.2.3本地环境安装失败(OpenSSL相关错误)求解决方案
解决Ruby 2.2.3安装时的OpenSSL与Rubygems加载错误
我之前维护遗留Ruby项目时也碰到过一模一样的问题——Ruby 2.2.3停更太久,和现在MacOS、Ubuntu默认的OpenSSL版本不兼容,再加上自带的Rubygems版本过时,才会出现那些加载错误。下面是几个亲测有效的解决办法:
方法一:指定旧版OpenSSL编译Ruby 2.2.3
新系统的OpenSSL版本(3.x/1.1.x)和Ruby 2.2.3的API不匹配,我们可以强制用兼容的旧版OpenSSL来编译Ruby:
针对MacOS(用Homebrew):
- 先安装兼容的OpenSSL 1.0版本:
brew install openssl@1.0 - 然后用这个OpenSSL路径编译Ruby 2.2.3:
rvm install 2.2.3 --with-openssl-dir=$(brew --prefix openssl@1.0)
针对Ubuntu或用RVM自带的OpenSSL包:
- 先让RVM安装旧版OpenSSL:
rvm pkg install openssl - 再编译Ruby:
rvm install 2.2.3 --with-openssl-dir=$HOME/.rvm/usr
方法二:用Docker快速搭建隔离环境
如果不想折腾本地系统的依赖,Docker是最省心的方案,直接用官方的旧版Ruby镜像:
docker run -it --rm -v $(pwd):/app ruby:2.2.3 bash
这条命令会启动一个包含Ruby 2.2.3的容器,并且把你当前的项目目录挂载到容器里,直接在容器里开发、修复代码就行,完全不影响本地环境。
方法三:手动更新Rubygems到兼容版本
Ruby 2.2.3自带的Rubygems版本太老,也会导致加载错误,我们可以手动更新到适配的版本(2.7.10是兼容Ruby 2.2.x的最高版本):
- 获取对应版本的Rubygems压缩包
- 解压压缩包并进入目录,执行安装命令:
ruby setup.rb
安装完成后再运行gem命令,应该就能解决LoadError的问题了。
内容的提问来源于stack exchange,提问作者Phil-6
相关产品推荐
相关产品推荐

