在OSX系统无法安装OpenSSL gem的问题求助
解决OpenSSL Gem安装失败的问题
你在用系统自带的Ruby 2.3.0安装openssl gem 2.1.0时遇到的原生扩展编译失败问题,大概率是旧Ruby版本与新gem版本不兼容,或是系统Ruby的权限/环境配置出了问题,给你几个实用的解决办法:
方法1:用Ruby版本管理工具(最推荐)
系统自带的Ruby版本普遍偏老,还受权限限制,用rbenv或rvm这类工具管理Ruby版本能避开很多坑:
- 先通过Homebrew安装rbenv:
按照提示把初始化命令加到你的shell配置文件(比如brew install rbenv rbenv init~/.zshrc或~/.bashrc)里,重启终端生效。 - 安装一个和openssl gem兼容的较新Ruby版本(比如3.2.2):
rbenv install 3.2.2 rbenv global 3.2.2 - 现在直接安装openssl gem即可,不用加额外参数,也不需要sudo:
gem install openssl
方法2:修复系统Ruby的环境与权限
如果坚持要用系统Ruby,可以试试这些步骤:
- 先确保OpenSSL已正确安装:
brew install openssl - 设置环境变量,让gem能找到OpenSSL的头文件和库文件:
export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include" export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig" - 修复系统gem目录的权限(避免sudo带来的权限混乱问题):
sudo chown -R $(whoami) /Library/Ruby/Gems/2.3.0 - 重新执行安装命令(你的原命令参数是对的,补上环境变量后就能正常找到依赖了):
gem install openssl -- --with-openssl-dir=/usr/local/opt/openssl
方法3:安装兼容旧Ruby的openssl gem版本
openssl gem 2.1.0对Ruby版本要求较高,Ruby 2.3.0可能不支持,你可以试试安装更旧的兼容版本:
gem install openssl -v 2.0.7
内容的提问来源于stack exchange,提问作者asndonsadoasndo231213
相关产品推荐
相关产品推荐

