美文网首页
[转]如何解决Homebrew在macOS新版本中的权限问题(/

[转]如何解决Homebrew在macOS新版本中的权限问题(/

作者: Julianlee107 | 来源:发表于2019-02-23 01:16 被阅读0次

因为某些原因,很久很久没有动过电脑写代码。今天在安装Python Ta-Lib库时发现需要安装Ta-Lib cpython的支持(大概是这个意思吧),所以需要先进行一步操作

brew install ta-lib

然而电脑版本升太快,新版本的macOS引入一个名为SIP(System Integrity Protector)的机制,导致homebrew无法使用。卸载后重装也没办法再次安装,会报出一个
Failed during: git init -q的错误。在查询过程中,发现了一个比较好的解决方案。原文来自:How to fix permission issues on Homebrew in OS X El Capitan?我仅仅是搬运翻译一下。

当你升级到Mac OS X El Capitan(来自本人注:包括以后的macOS High Sierra以及macOS Mojave)后,就无法再使用Homebrew了。作为一个经常使用homebrew 的人来说,我完全理解这种感受。
导致这些权限问题的原因是因为苹果对Mac OS X El Capitan(同上)做出的一种名为SIP(System Integrity Protector,系统完整保护)的新改变。更多SIP的信息可以直接前往本文的结尾。
如何解决Homebrew在Mac OS X El Capitan(同上)的权限问题:
如果你已经创建了usr/local目录,直接在终端中运行这行指令:

sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local

(本人:然鹅,我并不能~~~~,直接上后面的步骤了)

第一步

重启计算进进入恢复模式(在启动时按住Cmd+R),然后进入到终端中(是的你以后都必须进入到恢复模式,因为这是目前关闭SIP的唯一途径)

第二步

在终端中输入以下指令

csrutil disable

第三步

重启回到系统中

第四步

一旦Mac重启,打开终端,运行以下指令

sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local

(本人注:有/usr/local 文件的把前面mkdir /usr/local删掉就好)

第五步

以上操作完成后,你将需要重启进入到恢复模式中,然后在终端输入以下指令

csrutil enable

第六步

现在重启进入到系统中

第七步

你就能对/usr/local文件进行写入,homebrew也会正常使用了。

请注意

你如果不需要安装homebrew在usr/local或者其他系统保护的文件中,无视以上操作。

更多关于SIP- System Integrity Protector

有了SIP,你就不能对/usr,/System,和/bin文件进行写入,哪怕你拥有root权限或者你已经以root用户登录。
根据苹果的文档,/usr/local文件将有root:未来的macOS系统更新都会有之前一样的轮转限制权限(原文:wheel restricted permissions,PS:这段翻译得真的烂)。
Homebrew的团队已经获悉了这个问题,他们将会在不久的将来添加brew doctor的检查,会提醒了关于这些事情的警告。

相关文章

网友评论

      本文标题:[转]如何解决Homebrew在macOS新版本中的权限问题(/

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