ChatGPT解决这个技术问题 Extra ChatGPT

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

酿酒医生说:

警告:/usr/local/include 不可写。如果您“sudo make install”不是由 Homebrew 管理的软件,就会发生这种情况。如果 brew 尝试将头文件写入此目录,则安装将在链接步骤期间失败。您可能应该 chown /usr/local/include

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

我在 10.8.2 上运行自制软件

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

j
jrwren

拥有它和其中的一切。

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

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

以前版本的macos:

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

然后再做一个

$ brew doctor

不允许操作?
$ sudo chown -R `whoami` /usr/local/ 有什么优势吗?
@WillemLabu 少一个进程分叉? whoami 是有效的用户 id,正如手册页所说,它已经过时了 :) bash 是 OSX 上的默认 shell,并且 USER 正在某个地方设置。
我想知道将 /usr/local 的所有权更改为用户是否是一个干净的解决方案。将 $USER 添加到“wheel”组不是更好吗?还是把/usr/local的组改成admin组?
根据 Mac OS High Sierra 中的 Homebrew,chown /usr/local 不再起作用。改为使用 sudo chown -R $(whoami) $(brew --prefix)/*
D
Durul Dalkanat

对我有用的也是

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

这是唯一合理的修复,在多用户操作系统中获得 /usr/local 的所有权并不是很理智
需要给这个家伙一些选票! ;) 这很好用。
这是更好的解决方案恕我直言
好吧,不是在High Sierra。 “无法更改 /usr/local 上的文件模式:不允许操作”
@user980018 我刚遇到同样的事情 - 这是workaround I used
A
Ana Isabel

对我有用的是

$ sudo chown -R yourname:admin /usr/local/bin

H
Husky

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

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

chown: /usr/local: 不允许操作
@AlxVallejo 在 /usr/local/bin 上做这件事对我有用
对于现在阅读的任何人:如果 sudo chown -R $(whoami) /usr/local 导致 Big Sur 出现错误,请尝试 sudo chown -R $(whoami) /usr/local/include
P
Pro

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

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

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


我尝试了很多。 Brew 医生说目录不见了。您的回答帮助了我并且能够完成这项工作。谢谢你。 Mac用户,请试试这个。
M
Mogsdad

对于高山脉:

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

然后,尝试您的 brew 命令。

Issue #3285


不知道为什么这被否决了,如果您以前安装了 brew 并升级到 High Sierra,重新安装 Homebrew 可以解决问题。这是最简单的方法
具有讽刺意味的是,这是因为脚本完全按照其他答案的建议进行。
这对我有用,但首先我卸载了以前的使用: ruby -e "$(curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall)"
k
karlingen

您可以在 .bash_profile 中为修复此问题的命令设置别名,并在每次遇到它时运行它:

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

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

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

$ fix_brew

M
Max

这在 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

J
Jonathan James

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

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

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

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


我相信警告中的语法有点令人困惑,我给 Homebrew 的主要贡献者发了电子邮件,询问他们是否会改变它,等待回复,也许警告的措辞会在未来的 brew 更新中改变。
谢谢!经过大量搜索后,这奏效了。
A
Alexander Salas Bastidas

为我工作

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

$ cd /usr/local/Library && git stash && git clean -d -f

M
Matthew

首先,您需要创建目录:

sudo mkdir /usr/local/include

第二:

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

c
cSteusloff

MacOS 10.13 上的相同错误

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


J
JayRizzo

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

使用终端:

运行 brew doctor 看到多个 /usr/local/... 是不可写的错误

看到多个 /usr/local/... 是不可写的错误

禁用 Mac 的系统完整性保护:https://apple.stackexchange.com/a/208481/55628

运行以下

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

冲泡医生 && 冲泡升级 && 冲泡医生

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

编辑1:

仅供参考 - 请注意,这会导致在您的 MAC 上运行 MySQL 出现问题。为了能够启动我的本地服务器,我必须运行:

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

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


出色的!谢谢!
w
waldencoder

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

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

P
Paul Roub
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

这适用于莫哈韦沙漠。


a
add-semi-colons

您需要控制整个 /usr/local 才能做到这一点,您需要在 /usr/local 下执行递归 chown

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


a
adamkski

我只是想回应 sam9046 的谦虚评论作为替代方案,并且可能更简单的解决方案适用于我的案例:uninstallinstall 再次从头开始自制。不需要 sudo 命令。

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


T
Tarun

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

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

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

可以使用 ll /usr/local/Cellar 找到旧用户 ID

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

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


Y
Yusuf

进入 /bin 目录并输入:

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