Mac中安装Homebrew报错Permission denied、Failed during: git init -q

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了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容