You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在macOS Ventura的M2 MacBook Pro上安装CocoaPods遇权限错误求助

在M2芯片MacBook Pro(macOS Ventura 13.1)上解决CocoaPods安装权限问题

问题场景

我在搭载M2芯片的MacBook Pro上安装CocoaPods,系统为macOS Ventura 13.1,已安装Xcode 14.2及Xcode命令行工具14.2。执行以下命令:

sudo gem install cocoapods

出现如下权限错误:

Fetching rexml-3.2.5.gem
Fetching nanaimo-0.3.0.gem
Fetching colored2-3.1.2.gem
Fetching claide-1.1.0.gem
Fetching atomos-0.1.3.gem
Fetching ruby-macho-2.5.1.gem
Fetching xcodeproj-1.22.0.gem
Fetching nap-1.1.0.gem
Fetching molinillo-0.8.0.gem
Fetching gh_inspector-1.1.3.gem
Fetching fourflusher-2.3.1.gem
Fetching escape-0.0.4.gem
Fetching cocoapods-try-1.2.0.gem
Fetching netrc-0.11.0.gem
Fetching cocoapods-trunk-1.6.0.gem
Fetching cocoapods-search-1.0.1.gem
Fetching cocoapods-plugins-1.0.0.gem
Fetching cocoapods-downloader-1.6.3.gem
Fetching cocoapods-deintegrate-1.0.5.gem
Fetching ffi-1.15.5.gem
Fetching ethon-0.16.0.gem
Fetching typhoeus-1.4.0.gem
Fetching public_suffix-4.0.7.gem
Fetching fuzzy_match-2.0.4.gem
Fetching concurrent-ruby-1.1.10.gem
Fetching json-2.6.3.gem
Fetching httpclient-2.8.3.gem
Fetching algoliasearch-1.27.5.gem
Fetching addressable-2.8.1.gem
Fetching zeitwerk-2.6.6.gem
Fetching tzinfo-2.0.5.gem
Fetching minitest-5.17.0.gem
Fetching cocoapods-1.11.3.gem
Fetching i18n-1.12.0.gem
Fetching activesupport-6.1.7.gem
Fetching cocoapods-core-1.11.3.gem

**ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.**
    /Library/Ruby/Site/2.6.0/rubygems/installer.rb:712:in `verify_gem_home'
    /Library/Ruby/Site/2.6.0/rubygems/installer.rb:902:in `pre_install_checks'
    /Library/Ruby/Site/2.6.0/rubygems/installer.rb:302:in `install'
    /Library/Ruby/Site/2.6.0/rubygems/resolver/specification.rb:104:in `install'
    /Library/Ruby/Site/2.6.0/rubygems/request_set.rb:194:in `block in install'
    /Library/Ruby/Site/2.6.0/rubygems/request_set.rb:182:in `each'
    /Library/Ruby/Site/2.6.0/rubygems/request_set.rb:182:in `install'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:214:in `install_gem'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:230:in `block in install_gems'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:223:in `each'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:223:in `install_gems'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:169:in `execute'
    /Library/Ruby/Site/2.6.0/rubygems/command.rb:323:in `invoke_with_build_args'
    /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:251:in `invoke_command'
    /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:191:in `process_args'
    /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:149:in `run'
    /Library/Ruby/Site/2.6.0/rubygems/gem_runner.rb:51:in `run'
    /usr/bin/gem:21:in `<main>'

随后尝试执行以下命令,仍出现相同权限错误:

sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc

错误输出:

Gem 'ffi' is not installed
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.**
    /Library/Ruby/Site/2.6.0/rubygems/installer.rb:712:in `verify_gem_home'
    /Library/Ruby/Site/2.6.0/rubygems/installer.rb:902:in `pre_install_checks'
    /Library/Ruby/Site/2.6.0/rubygems/installer.rb:302:in `install'
    /Library/Ruby/Site/2.6.0/rubygems/resolver/specification.rb:104:in `install'
    /Library/Ruby/Site/2.6.0/rubygems/request_set.rb:194:in `block in install'
    /Library/Ruby/Site/2.6.0/rubygems/request_set.rb:182:in `each'
    /Library/Ruby/Site/2.6.0/rubygems/request_set.rb:182:in `install'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:214:in `install_gem'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:230:in `block in install_gems'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:223:in `each'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:223:in `install_gems'
    /Library/Ruby/Site/2.6.0/rubygems/commands/install_command.rb:169:in `execute'
    /Library/Ruby/Site/2.6.0/rubygems/command.rb:323:in `invoke_with_build_args'
    /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:251:in `invoke_command'
    /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:191:in `process_args'
    /Library/Ruby/Site/2.6.0/rubygems/command_manager.rb:149:in `run'
    /Library/Ruby/Site/2.6.0/rubygems/gem_runner.rb:51:in `run'
    /usr/bin/gem:21:in `<main>'

问题原因

macOS Ventura及后续版本启用了严格的系统完整性保护(SIP),系统自带Ruby所在的/System/Library/Frameworks/Ruby.framework目录属于系统核心区域,即使使用sudo也无法修改该目录的写入权限,因此直接通过系统Ruby安装CocoaPods会触发权限错误。

解决方案

方法一:使用Homebrew安装CocoaPods(推荐,操作最简单)

  1. 若未安装Homebrew,执行以下命令完成安装:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 安装CocoaPods:
    brew install cocoapods
    
  3. 验证安装成功:
    pod --version
    

方法二:使用rbenv管理独立Ruby环境

这种方法会创建一个用户级别的Ruby环境,完全避开系统Ruby的权限限制:

  1. 安装rbenv和ruby-build:
    brew install rbenv ruby-build
    
  2. 初始化rbenv,执行命令:
    rbenv init
    
    根据提示,将初始化命令添加到你的shell配置文件(比如~/.zshrc,M系列Mac默认使用zsh),添加后执行:
    source ~/.zshrc
    
  3. 查看可用的Ruby版本:
    rbenv install --list
    
  4. 安装一个较新的Ruby版本(例如3.2.2):
    rbenv install 3.2.2
    
  5. 设置全局Ruby版本为刚安装的版本:
    rbenv global 3.2.2
    
  6. 验证Ruby版本是否切换成功:
    ruby -v
    
  7. 无需sudo,直接安装CocoaPods:
    gem install cocoapods
    
  8. 验证安装:
    pod --version
    

内容的提问来源于stack exchange,提问作者WeCan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:00:40