Brew医生说:“警告:/ usr / local / include不可写。”


352

酿酒医生说:

警告:/ usr / local / include不可写。如果您使用的不是由Homebrew管理的“ sudo make install”软件,则可能会发生这种情况。

如果brew尝试将头文件写入此目录,则在链接步骤期间安装将失败。

您可能应该chown/ usr / local / include

我尝试了不同的命令来解决此问题,但我仍然停留在这里。

我在10.8.2上运行自制程序


1
我在Homebrew 0.9.4中遇到了类似的“ / usr / local / lib”错误,下面的解决方案也解决了该错误。
JeremiahLee13年

Answers:


680

拥有它及其所有内容的所有权。

Mac OS High Sierra或更高版本:(在下面的评论中感谢Kirk)

$ sudo chown -R $(whoami) $(brew --prefix)/*

macos的先前版本:

$ sudo chown -R $USER:admin /usr/local/include

然后再做

$ brew doctor

12
不允许操作?
topwik 2014年

68
$ sudo chown -R `whoami` /usr/local/什么优势代替吗?
Labu

2
@WillemLabu少一个流程分叉?whoami是有效的用户ID,并且正如手册页中所述:) bash是OSX上的默认shell,并且在USER位置已设置。
jrwren 2014年

7
我想知道是否将/ usr / local的所有权更改为用户是否干净。将$ USER添加到“ wheel”组会更好吗?还是将/ usr / local组更改为admin组?
Michael Lehn 2014年

13
根据Mac OS中的Homebrew的说法,High Sierra chown /usr/local不再起作用。改为使用sudo chown -R $(whoami) $(brew --prefix)/*
Kirk Hammett

115

对我有用的也是

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local

20
这是唯一的合理修复,在多用户操作系统中获得/ usr / local的所有权并不是真正的理性
Alexander Torstling 2015年

3
需要给这个家伙一些票!;)效果很好。
jrista '16

1
这是更好的解决方案恕我直言
jacurtis

5
好吧,不是在High Sierra。“无法在/ usr / local上更改文件模式:不允许操作”
user980018

1
@ user980018我遇到了同样的事情-这是我使用
Casey Davidson


37

在El Capitan上为我工作的唯一一位是:

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

5
chown:/ usr / local:不允许进行操作
AlxVallejo

1
@AlxVallejo在/ usr / local / bin上执行此操作对我
有用

23

如果您在High Sierra上遇到此问题,请按照以下步骤操作(注意:在High Sierra中不能使用/ usr / local):

sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*

然后尝试使用Brew链接进行链接。我遇到了类似的问题,以上解决方案均不适用于High Sierra。希望这对某人有帮助。


20

对于高山脉:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后,尝试您的brew命令。

问题#3285


2
如果您以前已经安装了brew并将其升级到High Sierra,则不知道为什么要降低它的价格,重新安装Homebrew可以解决此问题。这是最简单的方法
sam9046

具有讽刺意味的是,这是因为脚本完全按照其他答案的建议进行操作。
Lightness Races in Orbit

这对我有用,但首先我使用以下命令卸载了以前的版本:ruby -e“ $(curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall)”
abbas

12

您可以为该命令添加别名以解决此问题,.bash_profile并在每次遇到该问题时运行该命令:

在文件末尾~/.bash_profile,添加:

alias fix_brew='sudo chown -R $USER /usr/local/'

现在,您可以在终端中运行:

$ fix_brew

12

这在macOS 10.12上对我有用

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

我在更新自制软件时遇到以下错误:

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

8

对于一些它将是:

sudo chown -R JonJames:admin /usr/local/lib

使用“ lib”而不是“ bin”或“ include”或“其他”的地方

Homebrew 警告 “应该”说明什么是不可写的,然后为您提供命令语法以供遵循,但是您将需要使用“:”,而不是警告中提到的实际上是不正确的语法?


警告中的语法是有点混乱,我相信,我通过电子邮件发送的家酿领先贡献者询问他们是否会改变任何事情,等待回复,也许是警告的空话将在未来的酿造更新改变..
乔纳森·詹姆斯

谢谢!经过大量搜索后,此方法有效。
thiswayup '16


5

MacOS 10.13上的相同错误

/usr/local/include并且/usr/local/ /usr/lib未创建。我手动创建并brew link最终工作。


3

如果不存在/ usr / local / include和/ usr / local / lib,则需要创建它们:

$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include

3

在让我拥有更多东西的同时为我工作的东西在计算机上用户时,对我。

使用终端:

  • 跑步 brew doctor
    • 看到多个/usr/local/...不是可写错误
  • 禁用Mac的系统完整性保护:https : //apple.stackexchange.com/a/208481/55628
  • 运行以下命令
  • sudo chown -R $(whoami) /usr/local/*
  • brew doctor && brew upgrade && brew doctor

运行Macbook Pro OSX High Sierra(版本10.13.3。)

编辑1:

仅供参考-请注意,这会导致在MAC上运行MySQL时出现问题。

为了能够启动本地服务器,我必须运行:

sudo chown -R mysql:mysql /usr/local/mysql/data

运行此命令后,您可以启动本地MySQL服务器。


1
优秀的!谢谢!
shmuli

3
sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin

sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin

这将创建所有必需的目录并赋予其正确的所有权。

运行这些命令后,请检查: brew doctor

这适用于莫哈韦沙漠。


2

您需要控制整个/usr/local操作,而您需要chown在以下条件下进行递归操作/usr/local

sudo chown -R YOUR_USERNAME:admin /usr/local/


2

我只想回应sam9046的简短评论,作为在我的情况下可以使用的替代方案,并且可能更容易解决:卸载安装从头开始重新重新 homebrew。不需要sudo命令。

如果需要确保您的卸载脚本不会影响以前安装的软件包,也可以从上面的链接浏览/修改卸载脚本。就我而言,这只是我的家用计算机,所以我才重新开始。



2

首先,您需要创建目录:

sudo mkdir /usr/local/include

第二:

sudo chown -R $(whoami) $(brew --prefix)/*

1

在所有用户都绑定到活动目录之后,我在组织中发生了这种情况(有效地将UID从50x更改为######)。

现在,这只是将x拥有的所有文件的所有权更改为y的情况。

其中501是我的旧数字用户ID,该ID仍与所有自制文件相关联。

可以使用以下方式找到旧的用户ID ll /usr/local/Cellar

现在更新所有权 sudo find /usr/local -user 501 -exec chown -h $USER {} \;

这样,我们避免更改不受自制程序控制或不属于其他系统用户的文件的所有权。


1

进入/ bin目录并输入:

chown -R $ {whoami):admin / usr / local / bin

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.