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

时间:2013-01-25 17:51:53

标签: macos homebrew

Brew医生说:

  

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

     

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

     

您应该chown / usr / local / include

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

我在10.8.2上运行自制程序

19 个答案:

答案 0 :(得分:624)

掌握它及其中的所有内容。

Mac OS High Sierra或更新版本:(在下面的评论中提到Kirk)

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

以前版本的macos:

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

然后再做一次

$ brew doctor

答案 1 :(得分:109)

对我有用的是

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

答案 2 :(得分:38)

对我有用的是

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

答案 3 :(得分:37)

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

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

答案 4 :(得分:17)

对于High Sierra:

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

然后,尝试使用brew命令。

Issue #3285

答案 5 :(得分:17)

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

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

然后尝试使用brew链接进行链接。我遇到了类似的问题,上面没有一个解决方案适用于High Sierra。希望这有助于某人。

答案 6 :(得分:12)

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

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

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

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

$ fix_brew

答案 7 :(得分: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 :(得分:7)

为我工作

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

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

答案 9 :(得分:7)

对于某些人来说:

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

其中" lib"使用而不是" bin"或"包括"或"其他任何"

自制警告"应该"解释具体哪些不可写,然后给你一个命令语法,但是你需要使用":"而警告提到哪些实际上是不正确的语法?

答案 10 :(得分:5)

MacOS 10.13上的相同错误

未创建

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

答案 11 :(得分:3)

在我的计算机上拥有更多 <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服务器。

答案 12 :(得分:3)

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

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

答案 13 :(得分:2)

首先,您需要创建目录:

sudo mkdir /usr/local/include

第二:

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

答案 14 :(得分:2)

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

这适用于莫哈韦沙漠。

答案 15 :(得分:2)

您需要控制整个the error message :: 11-05 08:25:54.975 3250-3622/? E/logserver: set_output_postfix: NULL pointer. 11-05 08:25:54.975 3250-3622/? E/logserver: special_handle: NULL pointer. 11-05 08:25:54.978 5099-5213/? E/AprStatisticsFile: null apk name 11-05 08:25:54.983 3699-3715/? E/ReportTools: This is not beta user build 11-05 08:25:55.015 5099-5212/? E/PackageLogInfoManager: checkPackageLogState, cr: android.app.ContextImpl$ApplicationContentResolver@b6e40d8, packageNames: null 11-05 08:25:55.052 3699-4313/? E/HsmCoreServiceImpl: onTransact in code is: 102 才能执行/usr/local下的递归chown

/usr/local

答案 16 :(得分:1)

进入/ bin目录并键入:

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

答案 17 :(得分:1)

我只想回应sam9046的适度评论,作为在我的情况下有效的另一种解决方案,并且可能更简单:uninstallinstall从头开始进行自制。不需要sudo命令。

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

答案 18 :(得分:1)

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

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

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

可以使用ll /usr/local/Cellar

找到旧用户ID

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

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