安装tig
时,HomeBrew
在安装依赖项时显示以下问题:
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.
You can try again using:
brew link asciidoc
答案 0 :(得分:532)
关注Alex's answer我能够解决这个问题;这似乎是一个非特定于正在安装的软件包但具有homebrew
文件夹权限的问题。
sudo chown -R `whoami`:admin /usr/local/bin
对于某些套餐,您可能还需要对/usr/local/share
或/usr/local/opt
执行此操作:
sudo chown -R `whoami`:admin /usr/local/share
sudo chown -R `whoami`:admin /usr/local/opt
答案 1 :(得分:182)
我建议运行brew doctor
并严肃对待所有警告,而不是运行任何特定命令。您可能会遇到其他问题,可能无法在此问题中捕获这些问题。
此外,随着brew随时间更新,特定命令可能保持有效,也可能不保持有效。但是,brew doctor
会确保您获得最新的问题排查。
答案 2 :(得分:71)
其他答案是正确的,但是他们没有回答为什么可能正在发生这个问题,以及如何解决这个根本原因。
这个问题有两个可能的原因:
brew doctor
建议的原因,如果你运行它。如果您有多个用户帐户,并且您希望其中多个用户帐户能够使用brew,则需要执行几个步骤,否则每次您都必须经常更改Homebrew文件结构的所有权切换用户,这不是一个好主意。
详细说明可以在online找到,但快速回答如下:
Create a group名为brew:
sudo chgrp -R brew /usr/local
sudo chmod -R g+w /usr/local
sudo chgrp -R brew /Library/Caches/Homebrew
sudo chmod -R g+w /Library/Caches/Homebrew
如果您不想使用Homebrew的多个用户,那么根据brew doctor
的建议,其他答案提供的解决方案可能就足够了:
sudo chown -R $(whoami) /usr/local
sudo chown -R $(whoami) /Library/Caches/Homebrew
完成这些步骤后,brew doctor
应报告 brew 组中任何用户的成功,假设您已退出并重新申请以应用新的群组成员资格(如果您去了多用户路线)。如果您刚刚更正了单个用户自制程序的内容,则无需注销并重新登录,因为您的组成员资格都没有更改。
答案 3 :(得分:57)
/usr/local/someOtherFolderName
的人来说,不可写错误: 更新:可能是/usr/local/include
,例如sudo mkdir someOtherFolderName
。您只需要使用以下命令创建该文件夹:
sbin
首先创建sudo
文件夹,请注意这需要cd /usr/local
权限
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
Player::setName
答案 4 :(得分:30)
我发现在我的特定设置中,以下命令有效
brew doctor
然后,这向我展示了我的错误,然后是与上述评论略有不同的命令。
sudo chown -R $(whoami) /usr/local/opt
答案 5 :(得分:10)
对于那些在运行Mac OS High Sierra时遇到此问题(在发布此文章后的4年内获批)的用户-此处概述的步骤为我解决了这个问题。本质上只是概述了卸载和重新安装brew。
执行完这些步骤后,brew link
就像一个咒语!
答案 6 :(得分:9)
对我来说,解决方案是运行brew update
。
所以,先做这件事。
对于熟悉自制软件的人来说,这可能是正常的做法,但我不是那些人之一。
编辑:我发现我需要按照@ kinnth对同一问题的回答运行brew doctor
进行更新。
常规故障排除工作流程可能如下所示:
1.运行brew update
2.如果无法运行brew doctor
并遵循其指示
3.如果这无助于检查堆栈溢出
答案 7 :(得分:8)
我发现了同样的问题,我们可以通过三个步骤来解决:-
第1步
sudo chown -R $(whoami) $(brew --prefix)/*
第2步
brew doctor
第3步
brew prune
如果您仍然遇到任何链接问题,请说mysql
,只需输入
brew link mysql
这将起作用。
答案 8 :(得分:6)
在执行 brew链接节点时,我还遇到了以下问题:
错误:无法符号链接包含/ node / usr / local / include不可写。
链接/usr/local/Cellar/node/9.3.0 ...错误:权限被拒绝@ dir_s_mkdir - / usr / local / lib
要解决上述问题,只需转到/ usr / local /并检查文件夹'include'和'lib'的可用性,如果这些文件夹不可用,只需手动创建它们。
再次运行 brew安装节点
答案 9 :(得分:5)
这是因为当前用户不允许在该路径中写。因此,要更改r / w(读/写)权限,您可以使用1.终端,或2.图形化“获取信息”窗口。
<强> 1。使用终端
Google如何使用终端 chmod / chown (更改模式/更改所有者)命令
<强> 2。使用图形“获取信息”
您可以右键单击要更改权限的文件夹/文件,然后打开获取信息,这将显示如下所示的窗口,您可以在其中轻松更改r / w权限:
请尽可能将临时工作后的权限更改为“只读”
答案 10 :(得分:3)
我发现以下与Sophos Anti-Virus用户有关:
https://stackoverflow.com/a/32981184
https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029
简而言之,Sophos正在更改某些/ usr / local目录的权限。 Sophos修补了这个问题,修补程序包含在9.4.1版本中。
答案 11 :(得分:2)
我的问题是
Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.
chown
没有帮助,但我跟着运行了brew doctor
个建议,这个警告帮助了我:
Warning: Broken symlinks were found. Remove them with `brew prune`:
/usr/local/share/man/man3/*
brew prune
之后一切正常!
答案 12 :(得分:0)
如果您在Finder中转到该文件夹,请右键单击并选择&#34;获取信息&#34;你可以去&#34;共享和权限&#34;文件夹部分允许&#34;阅读&amp;写&#34;到每个人&#34;
这就是我用symlinks传递此错误的方法。 brew也似乎重置了文件夹的权限,就好像你没有改变任何东西
答案 13 :(得分:0)
对于不熟悉的人:
sudo chown -R YOUR_COMPUTER_USER_NAME PATH_OF_FILE
答案 14 :(得分:0)
如果/usr/local
中已经有要安装的软件包的目录,则可以尝试删除此目录。
在我的情况下,我以前已经安装了试图在不使用brew的情况下安装的软件包,然后又将其卸载了。先前的安装中剩下一个目录/usr/local/<my_package>/
。我删除了该文件夹(sudo rm -rf /usr/local/<my_package>/
),然后完成brew链接步骤。