394

酿酒医生说:

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

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

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

我尝试了不同的命令来解决这个问题,但我仍然被困在这里。

我在 10.8.2 上运行自制软件

4

19 回答 19

769

拥有它和其中的一切。

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

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

以前版本的macos:

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

然后再做一个

$ brew doctor
于 2013-01-26T17:26:49.877 回答
120

对我有用的也是

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local
于 2015-11-12T00:32:46.443 回答
40

对我有用的是

$ sudo chown -R yourname:admin /usr/local/bin
于 2014-09-29T22:33:29.253 回答
39

在 El Capitan 上唯一对我有用的是:

sudo chown -R $(whoami) /usr/local
于 2016-06-13T13:03:07.053 回答
26

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

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

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

于 2018-04-12T20:32:45.837 回答
23

对于高山脉:

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

然后,尝试您的 brew 命令。

问题 #3285

于 2018-01-24T08:19:28.590 回答
12

您可以使用别名命令来解决此问题,.bash_profile并在每次遇到它时运行它:

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

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

现在在您的终端内,您可以运行:

$ fix_brew
于 2015-10-06T06:40:48.080 回答
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
于 2016-09-20T17:27:58.580 回答
8

对于某些人来说,这将是:

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

其中使用“lib”而不是“bin”或“include”或“其他”

Homebrew警告“应该”解释什么具体是不可写的,然后给你一个命令语法来跟随,但是你需要使用“:”而不是警告提到的实际上是不正确的语法?

于 2015-12-21T22:22:38.790 回答
7

为我工作

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

$ cd /usr/local/Library && git stash && git clean -d -f
于 2015-10-07T22:30:06.210 回答
5

MacOS 10.13 上的相同错误

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

于 2017-11-29T18:10:12.943 回答
5

首先,您需要创建目录:

sudo mkdir /usr/local/include

第二:

sudo chown -R $(whoami) $(brew --prefix)/*
于 2019-06-13T00:21:17.150 回答
4

什么对我有用,而我的计算机上有超过1 个用户。

使用终端:

  • 跑步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 服务器。

于 2018-03-01T23:38:44.170 回答
3

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

$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include
于 2018-03-07T05:38:46.167 回答
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

这适用于莫哈韦沙漠。

于 2019-01-15T14:48:29.953 回答
2

你需要控制整个/usr/local来做你需要做一个递归chown/usr/local

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

于 2016-11-05T00:33:59.080 回答
2

我只想回应sam9046的谦虚评论,作为在我的情况下可行的替代方案,并且可能更容易解决:从头开始卸载并重新安装自制软件。不需要 sudo 命令。

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

于 2019-04-09T23:52:07.500 回答
1

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

现在只需将 x 拥有的所有文件的所有权更改为 y 即可。

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

可以使用找到旧的用户 IDll /usr/local/Cellar

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

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

于 2015-04-23T18:48:44.447 回答
1

进入 /bin 目录并输入:

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

于 2018-11-26T02:31:11.487 回答