升级El Capitan的啤酒


38

我刚刚升级到El Capitan,并且尝试更新时brew出现以下错误:

$ brew update
Error: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami):admin /usr/local

在我chown提出建议之前,鉴于El Capitan刚出来,这是在这里进行的正确方法吗?为什么需要执行此步骤?运行此命令有什么潜在的不良后果

如果有帮助,我发现了两个问题有关埃尔卡皮坦brew4083741665,但这个问题的解决方案还不清楚。我该怎么做才能继续brew可靠地在El Capitan中使用?


2
您是否按照消息提示做,更改了所有权/usr/local
user3439894 2015年

对于同一台计算机上的多个用户(或一个拥有多个账户的用户具有不同配置文件)的情况,这提出了一个很好的问题。
Walt Stoneburner 2015年

4
打字sudo chown -R给了我勇气。其他参数是什么都没有关系。我除了拥有Homebrew以外/usr/local,还不是一个明显安全的命令。我通过Time Machine确认仅安装El Capitan chowned,/usr/local而不安装子目录。因此,我能够进行非递归还原,即sudo chown $(whoami):admin /usr/local。YMMV。
duozmo '16

@duozmo是正确的。将-Rsudo chown -R真的重手。这等同于Brew要求整个/usr/local
所有权

Answers:


31

我的意思是他们在那里为您提供解决方案。我遇到了同样的问题,我就跑了:

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

而且有效。


1
+1我还需要按照说明重置用户的权限。经过这一小小的调整后,没有其他问题-自家酿制和我的软件包在10.11上非常可靠。
bmike

22
这并不能真正回答问题:有人可能会认为Apple锁定了/ usr / local是有原因的,并且此修复程序不适用于El Capitan。我现在正在谷歌搜索,看看苹果是否提供了一些指导。问题是“ ...鉴于El Capitan刚出来,这是在这里进行的正确方法吗?”
Michael Welch

1
@MichaelWelch答案发布于该编辑之前。
DisplayName 2015年

1
抱歉@DisplayName我应该看一下时间戳记。
Michael Welch

2
这是正确的答案。参见github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/…-我跑了下来$ brew doctor,发现flac缺少依赖项。在$ brew install flac我不得不顽固地跑$ brew update了几次之后。
安藤

9

我们不再需要为此打破头脑。我冒着建议的风险,并建议更改权限。然后,在更新到最新的自制软件时,我得到了以下令人放心的消息:

自制程序不再需要拥有/ usr / local的所有权。如果愿意,可以使用以下命令将/ usr / local返回其默认所有权:sudo chown root:wheel / usr / local


那么如何解决这个问题呢?
拉杰什·莫里雅

@RajeshMaurya使用karolus解决方案
JannieT

8

根据上面的一些安全性问题,对话框确实给出了成功更新Brew后的重置说明。跑步后

sudo chown -R $(whoami) /usr/local

然后

brew update

更新成功运行后,对话框应指示这样做:

sudo chown root:wheel /usr/local

运行该命令后,应该可以缓解MacOS 10.12的任何安全问题。


chown:/ usr / local:不允许进行操作
Rajesh Maurya,

6

给定的解决方案并没有为我工作:

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

这种变化对我有用:

sudo chown -R $USER /usr/local/


1
sudo chown -R $ USER / usr / local /在最新的macOS上为我工作
Alex Trott

1
chown:/ usr / local /:不允许操作
Rajesh Maurya,

添加sudo然后键入root级密码
Brian Spiering '18

1
仍然chown:/ usr / local /:即使输入root密码也不允许操作。
2myCharlie

0

我通过使用此命令修复它sudo chown -R admin /usr/local


-1

请通过以下方式查看SIP:

csrutil status

系统完整性保护固定为“启用”,最后一个Apple属性为“受限”:

csrutil 

3
这如何解决问题中提到的问题?
nohillside

-1

它为我工作。

sudo chgrp -R admin /usr/local
sudo chmod -R g+w /usr/local

1
这两种解决方案都不适合我。它仍然显示:chown:/ usr / local:不允许操作
2myCharlie

-2

系统完整性保护需要禁用。你可以做到这一点。

sudo nvram boot-args="rootless=0";osascript -e 'tell app "loginwindow" to «event aevtrrst»’

这将禁用整个系统的系统完整性保护。我相信您也可以从“恢复模式”中进行操作。使用sudo进行操作时,您仍然必须输入root密码,但是您不会被SIP锁定。然后,您也不会由于疏忽而试图设置权限而打开目录。


3
无需禁用SIP即可更改下面的所有权/usr/local
nohillside
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.