Mac终端执行sudo gem install sass遇/usr/bin目录权限错误求助
解决Mac下
sudo gem install sass权限错误的方案 嘿,这个问题我之前踩过坑!核心原因是从Mac OS X El Capitan开始,苹果启用了System Integrity Protection (SIP) 系统完整性保护机制,/usr/bin属于受严格保护的系统目录——哪怕用sudo拿到root权限,也没法往里面写入内容,这是苹果为了系统安全做的硬性限制,完全不建议去关闭SIP。
下面给你几个实用的解决办法,按推荐度排序:
方法1:用--user-install参数安装到用户专属目录
这是最轻量化的方案,不用折腾系统Ruby,直接把Sass装在你的个人目录里:
- 执行安装命令(这里不需要加
sudo):gem install sass --user-install - 把用户gem的可执行文件目录加入环境变量
PATH:- 先查你的Ruby版本:
ruby -v,比如输出是ruby 2.6.3p62,对应的gem bin目录就是~/.gem/ruby/2.6.0/bin - 打开你的shell配置文件(Zsh用户编辑
~/.zshrc,Bash用户编辑~/.bash_profile),添加一行:
记得把export PATH="$HOME/.gem/ruby/2.6.0/bin:$PATH"2.6.0换成你实际的Ruby版本号 - 保存后执行
source ~/.zshrc(或对应配置文件)让改动生效,之后就能直接用sass命令了
- 先查你的Ruby版本:
方法2:用Ruby版本管理器(rbenv/rvm)搭建独立环境
如果之后还要装更多Ruby工具,推荐用这个方案,彻底摆脱系统Ruby的权限束缚:
- rbenv操作步骤:
- 通过Homebrew安装rbenv:
brew install rbenv - 初始化rbenv:
跟着终端提示,把初始化命令添加到你的shell配置文件里(比如Zsh用户执行rbenv initecho 'eval "$(rbenv init - zsh)"' >> ~/.zshrc) - 安装一个你需要的Ruby版本(比如3.2.2):
rbenv install 3.2.2 - 设置全局使用这个Ruby版本:
rbenv global 3.2.2 - 现在直接安装Sass即可,全程不需要
sudo:gem install sass
- 通过Homebrew安装rbenv:
方法3:通过Homebrew直接安装Sass
现在官方主推的Sass实现是Dart Sass,Homebrew直接提供了安装包,步骤最省心:
brew install sass
这个方法会把Sass装在Homebrew专属目录(M1/M2 Mac是/opt/homebrew/bin,Intel Mac是/usr/local/bin),这些目录不受SIP限制,而且brew会自动帮你配置好PATH,安装完就能直接用sass命令。
内容的提问来源于stack exchange,提问作者Wade M.
相关产品推荐
相关产品推荐

