MacOS Catalina 10.15.2下用RVM安装Ruby2.3.8遇OpenSSL错误求助
解决MacOS Catalina 10.15.2下RVM安装Ruby 2.3.8的OpenSSL加载错误问题
这个问题在Catalina上特别常见——系统自带的OpenSSL版本、Homebrew默认安装的新版OpenSSL都和Ruby 2.3.x系列不兼容,再加上Catalina的安全机制限制,导致编译时无法正确链接OpenSSL库。下面是经过验证的解决步骤:
1. 安装适配Ruby 2.3.x的OpenSSL 1.0版本
Ruby 2.3.x不支持OpenSSL 1.1及以上版本,我们需要专门安装旧版的OpenSSL@1.0:
- 先卸载当前可能存在的新版OpenSSL(避免冲突):
brew uninstall --ignore-dependencies openssl - 安装OpenSSL 1.0:
brew install openssl@1.0
2. 设置环境变量让系统优先使用OpenSSL 1.0
在终端执行以下命令(如果要永久生效,可以把这些内容添加到~/.bash_profile或~/.zshrc文件中):
export PATH="/usr/local/opt/openssl@1.0/bin:$PATH" export LDFLAGS="-L/usr/local/opt/openssl@1.0/lib" export CPPFLAGS="-I/usr/local/opt/openssl@1.0/include" export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.0/lib/pkgconfig"
3. 确保Xcode命令行工具完整
Catalina下编译源码依赖完整的Xcode命令行工具,执行以下命令安装或更新:
xcode-select --install
4. 重新安装Ruby 2.3.8,指定OpenSSL目录和兼容的Rubygems版本
Ruby 2.3.8搭配Rubygems 3.x容易出现兼容性问题,我们指定一个适配的旧版Rubygems(比如2.7.10),同时明确OpenSSL路径:
rvm reinstall 2.3.8 --rubygems 2.7.10 --with-openssl-dir=$(brew --prefix openssl@1.0)
5. 解决Nokogiri安装问题(如果之前遇到)
当Ruby正确编译并链接OpenSSL后,安装Nokogiri时可以加上--use-system-libraries参数避免依赖问题:
gem install nokogiri -v 1.10.4 --use-system-libraries
完成以上步骤后,应该就能正常使用Ruby 2.3.8和对应的Gems了。如果还是有问题,可以先更新RVM到最新版本再重试:
rvm get stable
内容的提问来源于stack exchange,提问作者Shiva
相关产品推荐
相关产品推荐

