brew prune
удалил сломанные символические ссылки, поэтому проблема должна быть устранена.
Тот факт, что brew link node
жалуется, не имеет к этому никакого отношения;это совершенно другая команда.Это даже не ошибка, а предупреждение: «Вы попросили меня связать node
, но он уже связан», так что все в порядке.
Homebrew устанавливает свои файлы в /usr/local/Cellar
.С другой стороны, /usr/local/lib
является общим каталогом, обычно используемым для библиотек.Чтобы программное обеспечение могло найти установленные библиотеки Homebrew, оно вставило в них символические ссылки.
Например, предположим, у вас есть формула foo
версии 1.2.3, которая устанавливает библиотеку bar
.После запуска brew install foo
вы должны получить что-то вроде этого:
# the library files
/usr/local/Cellar/foo/1.2.3/lib/bar
# a symlink to the library files from /usr/local/lib
/usr/local/lib/bar -> /usr/local/Cellar/foo/1.2.3/lib/bar
Если вы brew uninstall foo
, он удалит как библиотечные файлы, так и символическую ссылку.
Этими символическими ссылками Homebrew можно управлять с помощьюbrew unlink <formula>
(удалить их) и brew link <formula>
(добавить их).brew install
работает brew link
для вас, так что вам не нужно.Вот почему вы получаете предупреждение: ваши символические ссылки на Node уже существуют.
brew doctor
выполняет различные проверки, включая check_for_broken_symlinks
.Этот файл ищет каталоги, такие как /usr/local/var
или /usr/local/lib
, для поиска битых символических ссылок.Разорванная символическая ссылка - это символическая ссылка, цель которой не существует, часто потому, что она была удалена.
Здесь важно понять, что Homebrew просматривает все символические ссылки, а не толькоэто создано.Сломанные символические ссылки могут вызывать проблемы, поэтому Homebrew предупреждает вас о них, но если все работает нормально, вы можете игнорировать предупреждение.