M1芯片Mac安装Cocoapods提示无写入权限问题求助
M1芯片MacOS安装Cocoapods权限错误解决方法
执行sudo gem install cocoapods时出现权限错误,具体信息如下:
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:185: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>'
原因
M1 Mac的系统Ruby目录受**系统完整性保护(SIP)**限制,即使用sudo也无法修改,因此不能直接向系统Ruby环境安装gem。
解决方案(按推荐程度排序)
1. 使用Homebrew安装独立Ruby环境(推荐)
这种方法完全隔离系统Ruby,避免后续权限问题:
- 安装Homebrew(未安装的话):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 安装Ruby:
brew install ruby - 配置环境变量,让系统优先使用Homebrew的Ruby:
- 若使用zsh,编辑
~/.zshrc,添加:export PATH="/usr/local/opt/ruby/bin:$PATH" - 若使用bash,编辑
~/.bash_profile,添加同样内容
- 若使用zsh,编辑
- 刷新环境变量:
source ~/.zshrc # zsh用户 # 或 source ~/.bash_profile # bash用户 - 验证Ruby版本(确认不是系统默认的2.6.x):
ruby -v - 安装Cocoapods(无需
sudo):gem install cocoapods
2. 使用gem的用户目录安装
直接将Cocoapods安装到用户专属目录,避开系统权限限制:
- 执行安装命令:
gem install cocoapods --user-install - 配置环境变量,将用户gem的bin目录加入PATH:
编辑~/.zshrc或~/.bash_profile,添加:
(注意:路径中的export PATH="$HOME/.gem/ruby/2.6.0/bin:$PATH"2.6.0需与系统Ruby版本保持一致,可通过ruby -v查看) - 刷新环境变量后,验证安装:
pod --version
3. 通过Rosetta 2运行终端
若不想修改Ruby环境,可通过Rosetta兼容模式绕过权限限制:
- 找到「终端」应用,右键选择「显示简介」
- 勾选「使用Rosetta打开」,重启终端
- 执行安装命令:
sudo gem install cocoapods
内容的提问来源于stack exchange,提问作者Владимйр
相关产品推荐
相关产品推荐

