Установлено, просто не связано
Примечание. Я не очень хорошо использую оболочку.
Я пытался установить Valgrind
с помощью brew
на Yosemite.
brew install --HEAD valgrind
К концу, я получил ошибку, связанную со ссылкой, поэтому, когда я попытался переустановить, я получил:
Предупреждение: valgrind-HEAD уже установлен, он просто не связан
По-видимому, я уже установил его. Затем, основываясь на других SO-ответах и ответах, я попробовал:
brew link valgrind
Это, казалось, решило проблемы других людей с привязкой уже установленного программного обеспечения, но это дало мне ошибку:
Linking /usr/local/Cellar/valgrind/HEAD...
Error: Could not symlink lib/pkgconfig/valgrind.pc
/usr/local/lib/pkgconfig is not writable.
Я также пытался обновить brew
, но это не решило проблему. Если он не доступен для записи, возможно, sudo
предоставит мне разрешение, но я не хочу использовать sudo
, не зная точно, что я делаю.
Что происходит и как его исправить?
Ответы
Ответ 1
Похоже на проблему с разрешением. Я бы попытался сделать это
chmod 755 /usr/local/lib/pkgconfig
Это должно сделать это доступным, а затем попробуйте
brew link valgrind
Если это не работает, я попробую сделать проверку на нем
brew doctor
Ответ 2
Первый запуск
brew link <package>
Если это дает ошибку, попробуйте автоматическую диагностику
brew doctor
brew doctor
дает список проблем, которые могут привести к ошибкам в процессе установки.
Чтобы устранить проблемы в случае конфликтов файлов,
запустите, чтобы получить список всех действий, которые будет выполняться, путем перезаписывания без их фактического выполнения.
Чтобы просмотреть все файлы, которые будут удалены:
brew link --overwrite --dry-run <package>
за которым следует этот прогон, который будет выполнять перезапись, если вы считаете, что действия, выполняемые перезаписью, приведут вашу систему к более стабильному состоянию.
Чтобы заставить ссылку и перезаписать все конфликтующие файлы:
brew link --overwrite <package>
Ответ 3
Если ни одно из вышеприведенных решений не работает, попробуйте это.
sudo chown -R $USER:admin /usr/local
brew link <package-name>
Ответ 4
Вот что я пробовал и работал:
$ brew link --overwrite sdl
Linking /usr/local/Cellar/sdl/1.2.15...
Error: Could not symlink lib/pkgconfig/sdl.pc
/usr/local/lib/pkgconfig is not writable.
Посмотрел pkgconfig
: (после chmod 750
)
drwxr-xr-x 4 root wheel 136B Mar 30 2013 pkgconfig
Я попробовал chown
, как показано ниже:
$ sudo chown -R avkashchauhan:admin /usr/local/lib/pkgconfig
он должен выглядеть следующим образом:
drwxr-xr-x 4 avkashchauhan admin 136B Mar 30 2013 pkgconfig
После того, как я попробовал:
$ brew link sdl
Linking /usr/local/Cellar/sdl/1.2.15... 182 symlinks created
Ответ 5
В моем случае brew doctor понял это правильно. В какой-то момент /usr/local/lib/pkgconfig было установлено, что она принадлежит root, а не моей учетной записи. Прописанное лечение исправлено -
sudo chown -R $(whoami) /usr/local/lib/pkgconfig
Ответ 6
Введите
link valgrind
Появится сообщение об ошибке, которое невозможно связать, поскольку такой-то каталог не доступен для записи. Прохладный, мы делаем его доступным для записи сейчас. Тип
sudo chmod a+w the/directory/shown/as/error
Если каталог не доступен для записи, вы не сможете изменить его разрешение и сделать его доступным для записи. Судо сделает эту операцию возможной. chmod изменит режим и сделает все (а) пользователей в состоянии написать (w).
Затем вам будет предложено ввести системный пароль. После этого снова введите
link valgrind
и он будет работать на этот раз.
Ответ 7
У меня возникла аналогичная проблема,
$brew установить sqlite
Обновление Homebrew...
== > Автообновление Homebrew!
Обновлено 1 tap (homebrew/core).
Никаких изменений в формулах.
Предупреждение: sqlite-3.17.0 уже установлен, он просто не связан.
Я попытался связать его,
$brew ссылка sqlite
Предупреждение: sqlite - только кег и должен быть связан с --force
Обратите внимание, что это может помешать созданию программного обеспечения.
Затем сделайте это силой,
$brew ссылка --force sqlite
Связывание /usr/local/Cellar/sqlite/ 3.17.0... 8 созданных символических ссылок