macOS Big Sur下安装Angular CLI遇lchown不存在与EPERM错误如何解决
macOS安装Angular CLI报lchown EPERM错误解决方案
问题说明
你遇到的报错核心原因有两点:
- macOS不存在独立的
lchown终端命令,它只是系统内核提供的底层调用,直接输入lchown提示命令不存在属于正常情况,无需额外安装该命令。 - macOS Big Sur的系统完整性保护(SIP)限制了root账号对
/usr/local路径下部分文件的权限修改,加上npm 8.x默认全局安装时会尝试修改目标路径文件所有者,才会出现哪怕用root、sudo也报错的情况。
解决方案
方案1:修改npm全局安装路径(最推荐,无系统权限修改风险)
- 创建用户专属的npm全局包目录
mkdir -p ~/.npm-global - 配置npm使用新的全局安装路径
npm config set prefix '~/.npm-global' - 打开shell配置文件(zsh对应
~/.zshrc,bash对应~/.bash_profile),添加环境变量export PATH=~/.npm-global/bin:$PATH - 重载shell配置使环境变量生效
source ~/.zshrc# 使用bash的用户替换为source ~/.bash_profile - 无需加sudo直接安装Angular CLI
npm install -g @angular/cli
方案2:修改/usr/local目录所有者
- 执行命令将/usr/local下所有文件的所有者改为当前用户
sudo chown -R $USER:admin /usr/local/* - 直接安装Angular CLI即可
npm install -g @angular/cli
方案3:临时关闭SIP(仅前两种方案无效时使用)
- 重启Mac,按住Command+R进入恢复模式
- 在顶部菜单栏找到终端打开,执行命令关闭SIP
csrutil disable - 重启回到正常系统后重新执行安装命令,安装完成后建议重新开启SIP:再次进入恢复模式执行
csrutil enable即可。
内容的提问来源于stack exchange,提问作者Prajwal
相关产品推荐
相关产品推荐

