macOS11.6+Xcode13执行sudo gem install cocoapods报socket加载错误
报错详情
执行sudo gem install cocoapods时触发如下报错:
ERROR: Loading command: install (LoadError)
cannot load such file -- socket
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
适用环境:macOS 11.6(20G165)、Xcode 13.0 (13A223)
解决方案
前置说明
该报错核心原因是macOS系统自带的Ruby版本过旧(默认2.6.x),且系统级Ruby有权限保护,直接调用系统gem安装第三方依赖会触发加载失败问题,无需调整系统Ruby配置,替换为独立安装的Ruby版本即可解决。
操作步骤
- 第一步:确认Xcode命令行工具已安装
执行命令:xcode-select --install
如果提示已安装,直接跳过该步骤。 - 第二步:安装Homebrew管理的独立Ruby版本
如果还未安装Homebrew,先完成Homebrew安装,之后执行:brew install ruby - 第三步:配置Ruby环境变量
如果使用zsh作为默认shell,执行:echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrcsource ~/.zshrc
如果使用bash作为默认shell,执行:echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profilesource ~/.bash_profile - 第四步:验证Ruby版本
执行which ruby,输出应为/usr/local/opt/ruby/bin/ruby,而非系统默认的/usr/bin/ruby
执行ruby -v,确认版本≥3.0即可。 - 第五步:重新安装CocoaPods
无需加sudo权限,直接执行:gem install cocoapods
安装完成后执行pod --version,输出版本号即为安装成功。
异常兼容处理
如果执行上述步骤后依旧报错,按以下操作重置后重试:
- 切换gem源为国内镜像,避免网络下载失败:
gem sources --remove https://rubygems.org/gem sources --add https://gems.ruby-china.com/gem sources -l
确认输出仅包含https://gems.ruby-china.com即可。 - 清理旧版CocoaPods残留文件:
sudo gem uninstall -a cocoapodsrm -rf ~/.cocoapods
之后重新执行gem install cocoapods即可。
内容的提问来源于stack exchange,提问作者KWJ william
相关产品推荐
相关产品推荐

