酿酒医生说:
警告:/usr/local/include 不可写。如果您“sudo make install”不是由 Homebrew 管理的软件,就会发生这种情况。
如果 brew 尝试将头文件写入此目录,则安装将在链接步骤期间失败。
您可能应该
chown
/usr/local/include
我尝试了不同的命令来解决这个问题,但我仍然被困在这里。
我在 10.8.2 上运行自制软件
拥有它和其中的一切。
Mac OS High Sierra 或更新版本:(在下面的评论中对 Kirk 表示感谢)
$ sudo chown -R $(whoami) $(brew --prefix)/*
以前版本的macos:
$ sudo chown -R $USER:admin /usr/local/include
然后再做一个
$ brew doctor
对我有用的也是
sudo chmod g+w /usr/local
sudo chgrp staff /usr/local
对我有用的是
$ sudo chown -R yourname:admin /usr/local/bin
在 El Capitan 上唯一对我有用的是:
sudo chown -R $(whoami) /usr/local
如果您在High Sierra上并遇到此问题,请按照以下步骤操作(注意: /usr/local 不能在 High Sierra 中被 chown'd):
sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*
然后尝试使用 brew link 进行链接。我遇到了类似的问题,上面的解决方案都不适用于 High Sierra。希望这可以帮助某人。
对于高山脉:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后,尝试您的 brew 命令。
您可以使用别名命令来解决此问题,.bash_profile
并在每次遇到它时运行它:
在文件末尾~/.bash_profile
添加:
alias fix_brew='sudo chown -R $USER /usr/local/'
现在在您的终端内,您可以运行:
$ fix_brew
这在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
对于某些人来说,这将是:
sudo chown -R JonJames:admin /usr/local/lib
其中使用“lib”而不是“bin”或“include”或“其他”
Homebrew警告“应该”解释什么具体是不可写的,然后给你一个命令语法来跟随,但是你需要使用“:”而不是警告提到的实际上是不正确的语法?
为我工作
$ sudo chown -R $(whoami):admin /usr/local
$ cd /usr/local/Library && git stash && git clean -d -f
MacOS 10.13 上的相同错误
/usr/local/include
并且/usr/local/
/usr/lib
没有被创建。我手动创建并brew link
最终工作。
首先,您需要创建目录:
sudo mkdir /usr/local/include
第二:
sudo chown -R $(whoami) $(brew --prefix)/*
什么对我有用,而我的计算机上有超过1 个用户。
使用终端:
brew doctor
/usr/local/...
不可写错误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 服务器。
如果 /usr/local/include 和 /usr/local/lib 不存在,则需要创建它们:
$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include
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
这适用于莫哈韦沙漠。
你需要控制整个/usr/local
来做你需要做一个递归chown
下/usr/local
sudo chown -R YOUR_USERNAME:admin /usr/local/
在我们的所有用户都绑定到活动目录(有效地将 UID 从 50x 更改为 ######)之后,我的组织中发生了这种情况。
现在只需将 x 拥有的所有文件的所有权更改为 y 即可。
其中 501 是我的旧数字用户 ID,它仍然与所有自制文件相关联。
可以使用找到旧的用户 IDll /usr/local/Cellar
现在更新所有权
sudo find /usr/local -user 501 -exec chown -h $USER {} \;
这样我们就可以避免更改不受自制软件控制或属于其他系统用户的文件的所有权。
进入 /bin 目录并输入:
chown -R $(whoami):admin /usr/local/bin