While installing tig
, HomeBrew
is displaying the following issues while installing a dependency:
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
This question is related to
homebrew
While doing brew link node In addition I got the following issues as well:
Error: Could not symlink include/node /usr/local/include is not writable.
Linking /usr/local/Cellar/node/9.3.0... Error: Permission denied @ dir_s_mkdir - /usr/local/lib
To solve the above just go to /usr/local/ and check the availability of folders 'include' and 'lib', if those folders are not available just create them manually.
And run brew install node again
/usr/local/sbin
is not writable error:UPDATE: It could be /usr/local/someOtherFolderName
e.g /usr/local/include
. You just need to create that folder with:
sudo mkdir someOtherFolderName
First create the sbin
folder, note that this requires sudo
privileges
cd /usr/local
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
For those that are not familiar:
sudo chown -R YOUR_COMPUTER_USER_NAME PATH_OF_FILE
The other answers are correct, as far as they go, but they don't answer why this issue might be occurring, and how to address that root cause.
There are two possible causes to this issue:
brew doctor
suggests, if you run it.If you have multiple user accounts, and you want more than one of them to be able to use brew, you need to run through a few steps, otherwise you will constantly have to change ownership of the Homebrew file structure every time you switch users, and that's not a great idea.
Detailed instructions can be found online, but the quick answer is this:
Create a group named 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
If you're not trying to use more than one user with Homebrew, then the solution provided by the other answers, based on the suggestions of brew doctor
is probably sufficient:
sudo chown -R $(whoami) /usr/local
sudo chown -R $(whoami) /Library/Caches/Homebrew
After these steps, brew doctor
should report success by any user in the brew group, assuming you've logged out and back in to apply the new group memberships (if you went the multiuser route). If you just corrected things for single user homebrew, then logging out and back in shouldn't be necessary as none of your group memberships have changed.
This is because the current user is not permitted to write in that path. So, to change r/w (read/write) permissions you can either use 1. terminal, or 2. Graphical "Get Info" window.
1. Using Terminal
Google how to use chmod/chown (change mode/change owner) commands from terminal
2. Using graphical 'Get Info'
You can right click on the folder/file you want to change permissions of, then open Get Info which will show you a window like below at the bottom of which you can easily change r/w permissions:
Remember to change the permission back to "read only" after your temporary work, if possible
My problem was
Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.
chown
didn't help, but i followed running brew doctor
advices and this warning helped me:
Warning: Broken symlinks were found. Remove them with `brew prune`:
/usr/local/share/man/man3/*
After brew prune
all worked fine!
I found for my particular setup the following commands worked
brew doctor
And then that showed me where my errors were, and then this slightly different command from the comment above.
sudo chown -R $(whoami) /usr/local/opt
If you already have a directory in /usr/local
for the package you're installing, you can try deleting this directory.
In my case I had previously installed the package I was trying to install without using brew, and had then uninstalled it. There was a directory /usr/local/<my_package>/
left over from that previous install. I deleted this folder (sudo rm -rf /usr/local/<my_package>/
) and after that the brew link step was successful.
For those running into this issue (granted 4 years after this post was made) while running Mac OS High Sierra - the steps outlined here solved the problem for me. Essentially just outlines uninstalling and reinstalling brew.
After running those steps, brew link
worked like a charm!
If you go to the folder in finder, right click and select "Get Info" you can go to the "Sharing and Permissions" section for the folder and allow "Read & Write" to "everyone"
This is what I do to make symlinks pass with this error. Also brew seems to reset the permissions on the folder also as if you hadn't altered anything
Rather than running any particular command, I would recommend running brew doctor
and taking all warnings seriously. There may be other problems you get stuck at which may not be captured in this question.
Also, as brew gets updated with time, particular commands may or may not remain valid. brew doctor
, however, will ensure that you get up to date troubleshooting.
For me the solution was to run brew update
.
So, DO THIS FIRST.
This might be normal practice for people familiar with homebrew, but I'm not one of those people.
Edit: I discovered that I needed to update by running brew doctor
as suggested by @kinnth's answer to this same question.
A general troubleshooting workflow might look like this:
1. run brew update
2. if that doesn't help run brew doctor
and follow its directions
3. if that doesn't help check stack overflow
I found same problem, we can resolve in three steps:-
Step 1
sudo chown -R $(whoami) $(brew --prefix)/*
Step 2
brew doctor
Step 3
brew prune
If you still get any linking problem, lets say for mysql
, just write
brew link mysql
This will work.
I've found the following relevant for Sophos Anti-Virus users:
https://stackoverflow.com/a/32981184
https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029
In short, Sophos is changing permissions of certain /usr/local directories. Sophos has patched this and the fix is included with version 9.4.1.
Source: Stackoverflow.com