美文网首页
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