What does "brew link" do?
When I run brew doctor
I get the common warning:
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
# [...]
What does it mean for kegs to be unlinked? And what does brew link
do exactly?
brew link
creates symlinks to installations you performed manually in Cellar
. This allows you to have the flexibility to install things on your own but still have those participate as dependencies in homebrew
formulas.
See the FAQ for more information.
You should follow those instructions and run brew link
on the entries it lists.
Homebrew can allow multiple versions of a formula to be installed. For example, there is formulae called node
and node@10
and similar.
$ brew info node@10
...
==> Caveats
node@10 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If I have both node
and node@10
installed, where node
is at v11. I can decide later to active the earlier version with brew link
:
$ brew unlink node
$ brew link node@10
$ cd /urs/local/bin
$ ls -l node
lrwxr-xr-x 1 user admin 34 12 Dec 20:07 node -> ../Cellar/node@10/10.14.1/bin/node
Here the symlink node
is pointing to an earlier version (keg-only
) installed in Cellar
.