美文网首页
Mac中安装Homebrew报错Permission denie

Mac中安装Homebrew报错Permission denie

作者: pubalabala | 来源:发表于2019-09-29 13:56 被阅读0次

Homebrew是Mac中很强大的一个指令,相当于Ubuntu中的apt-get,当我们需要在Mac中安装某些特定的环境时,就需要用到brew指令。

1. 安装指令

首先是一般情况下的安装指令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 存在的问题

然后按照提示多数情况即可安装成功。
但是如果都是这样,那么写这篇文章就没有意义了,我在执行后上述指令后会安装失败,返回类似这样的错误:

error: could not lock config file /usr/local/Homebrew/.git/config: Permission denied
Failed during: git init -q

3. 解决问题

这篇文章就是为了解决这个问题,以下操作参考mac Homebrew /usr/local写入权限问题

出现这个错误的原因是因为没有/usr/local/目录的权限,而安装brew或者brew update时需要向这个文件夹下写入文件
于是执行修改权限指令: sudo chown -R <用户名> /usr/local
但是你会得到这样的错误: chown: /usr/local: Operation not permitted
原因在于苹果从 OS X El Capitan 10.11 系统开始使用了 Rootless 机制,可以将该机制理解为一个更高等级的系统的内核保护措施,系统默认将会锁定 /system、/sbin、/usr 这三个目录。
终端输入
csrutil status
可以看到这样的结果
System Integrity Protection status:enabled
说明rootless默认打开,此时无法通过sudo命令,对/system、/sbin、/usr 这三个目录进行修改。

打开、关闭Rootless机制

  • 重启 Mac
  • 开机时后按下 Command+R,进入恢复模式。
  • 在顶端的菜单栏的实用工具中找到并打开 Terminal/终端
  • 输入指令: csrutil disable
  • 此时rootless已经关闭,退出恢复模式,正常进入系统。在终端输入: csrutil status 可以看到System Integrity Protection status:disabled则说明关闭Rootless机制成功,然后就可以更改目录权限啦
  • 再次执行指令: sudo chown -R <用户名> /usr/local,命令完成后无提示,说明修改成功
  • 建议修改完成之后,为了系统安全,将rootless重新开启。开启方式同关闭方式一样,在恢复模式的Terminal输入:crsutil enable

处理好 /usr/local 的权限问题后我们就可以正常安装Homebrew了

相关文章

网友评论

      本文标题:Mac中安装Homebrew报错Permission denie

      本文链接:https://www.haomeiwen.com/subject/qcniyctx.html