MacOS下安装openssl 2.2.1 gem遇到问题求助
解决Ruby 2.7.5下openssl gem 2.2.1安装失败问题
问题排查与解决步骤
1. 确认当前激活的Ruby版本及关联的OpenSSL版本
先确保终端正在使用rbenv管理的Ruby 2.7.5:
rbenv local 2.7.5 ruby -v # 应输出类似 ruby 2.7.5p203 的内容
查看Ruby内置关联的OpenSSL版本:
ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
如果输出不是OpenSSL 1.1.1系列,说明Ruby编译时未绑定目标OpenSSL版本,需要重新编译Ruby。
2. 重新编译Ruby 2.7.5并绑定OpenSSL 1.1.1
先卸载当前的Ruby 2.7.5:
rbenv uninstall 2.7.5
设置环境变量,让ruby-build编译Ruby时使用brew安装的OpenSSL@1.1:
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)" export LDFLAGS="-L$(brew --prefix openssl@1.1)/lib" export CPPFLAGS="-I$(brew --prefix openssl@1.1)/include"
重新安装Ruby 2.7.5:
rbenv install 2.7.5
安装完成后再次执行ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION',确认输出为OpenSSL 1.1.1系列。
3. 安装openssl gem 2.2.1
此时Ruby已正确关联OpenSSL 1.1.1,直接执行以下命令安装gem:
gem install openssl -v '2.2.1'
或者直接运行:
bundle install
即可完成依赖安装。
失败原因说明
之前手动安装命令未生效,核心原因是当前Ruby编译时绑定的是系统默认的OpenSSL 3.1.2,gem编译时优先使用Ruby关联的OpenSSL库,而非命令行临时指定的路径。重新编译Ruby绑定正确的OpenSSL版本后,gem安装即可正常进行。
内容的提问来源于stack exchange,提问作者David Armendariz
相关产品推荐
相关产品推荐

