Установлено, просто не связано

Примечание. Я не очень хорошо использую оболочку.

Я пытался установить 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 созданных символических ссылок