安装 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
13 回答
如果您在finder中转到该文件夹,右键单击并选择“获取信息”,您可以转到该文件夹的“共享和权限”部分,并允许“读取和写入”到“所有人”
这就是我使用符号链接传递此错误的方法 . brew也似乎重置了文件夹的权限,就好像你没有改变任何东西
我的问题是
chown
没有帮助,但我跟着运行brew doctor
建议,这个警告帮助我:brew prune
之后一切正常!在做 brew link node 时另外我也遇到了以下问题:
错误:无法使用符号链接/ node / usr / local / include不可写 .
链接/usr/local/Cellar/node/9.3.0 ...错误:权限被拒绝@dir_s_mkdir - / usr / local / lib
要解决上述问题,只需转到/ usr / local /并检查文件夹'include'和'lib'的可用性,如果这些文件夹不可用,只需手动创建它们即可 .
并再次运行 brew install node
对于那些正在寻找/ usr / local / sbin的人来说是不可写的错误:
UPDATE: 可能是
/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
对我来说,解决方案是运行
brew update
.所以,先做这件事 .
对于熟悉自制软件的人来说,这可能是正常的做法,但我不是那些人之一 .
编辑:我发现我需要通过运行
brew doctor
进行更新,正如@ kinnth对同一个问题的回答所建议的那样 .一般的故障排除工作流程可能如下所示:1 . 运行
brew update
2.如果这不能帮助运行brew doctor
并按照其指示3.如果这无助于检查堆栈溢出我找到了我的特定设置以下命令
然后,这向我展示了我的错误,然后从上面的评论中略微不同的命令 .
在Alex' answer之后,我能够解决这个问题;这似乎是一个非特定于正在安装的软件包但
homebrew
文件夹权限的问题 .对于某些包,您可能还需要执行
/usr/local/share
或/usr/local/opt
:我发现同样的问题,我们可以分三步解决: -
步骤1
第2步
第3步
如果你仍然遇到任何链接问题,让我们说
mysql
,只需写这会奏效 .
这是因为当前用户不允许在该路径中使用 write . 因此,要更改r / w(读/写)权限,您可以使用1. terminal,或2. Graphical "Get Info" window .
1. Using Terminal
谷歌如何使用终端的 chmod/chown (更改模式/更改所有者)命令
2. Using graphical 'Get Info'
您可以右键单击要更改权限的文件夹/文件,然后打开 Get Info ,这将显示如下所示的窗口,您可以在其下方轻松更改r / w权限:
Remember to change the permission back to "read only" after your temporary work, if possible
我发现以下与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版本中 .
对于那些遇到这个问题的人(在发布这篇文章4年后),在运行Mac OS High Sierra时 - 这里概述的步骤为我解决了问题 . 基本上只是概述了卸载和重新安装brew .
https://medium.com/@mrkdsgn/brew-error-on-macos-high-sierra-check-you-have-permission-to-write-to-usr-local-e8bd1c6a22d4
运行这些步骤后,
brew link
就像一个魅力!其他答案是正确的,只要他们去,但他们不回答为什么可能发生这个问题,以及如何解决这个根本原因 .
原因
这个问题有两个可能的原因:
自制安装是使用您当前使用的用户以外的用户执行的 . Homebrew希望只有最初安装它的用户才会想要使用它 .
您安装了一些不使用brew而写入/ usr / local的软件 . 这是
brew doctor
建议的原因,如果你运行它 .解决方案
Multiuser Homebrew
如果您有多个用户帐户,并且您希望其中多个用户帐户能够使用brew,则需要执行几个步骤,否则每次切换用户时都需要不断更改Homebrew文件结构的所有权,这不是一个好主意 .
详细说明可以在online找到,但快速回答如下:
Create a group命名为brew:
打开系统首选项
单击“帐户”
单击"+"(必要时先解锁)
在新帐户下,选择组
输入brew
单击“创建组”
选择brew组,然后添加所需的用户帐户使用酿造它 .
更改/ usr / local文件夹组所有权:
sudo chgrp -R brew /usr/local
更改权限以将写入添加到/ 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组中的任何用户的成功,假设您没有必要,因为您的组成员身份都没有更改 .我建议运行
brew doctor
并严肃对待所有警告,而不是运行任何特定命令 . 您可能会遇到其他问题,可能无法在此问题中捕获这些问题 .此外,随着brew随时间更新,特定命令可能保持有效,也可能不保持有效 . 但是,
brew doctor
将确保您获得最新的故障排除 .