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

86

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

Я пытался установить Valgrindс помощью brewЙосемити.

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не зная точно, что я делаю.

Что происходит и как это исправить?

aanrv
источник

Ответы:

103

Похоже, проблема с разрешением. Я бы попробовал сделать это

chmod 755 /usr/local/lib/pkgconfig

Это должно сделать это доступным, затем попробуйте

brew link valgrind

Если это не сработает, я бы попробовал проверить это

brew doctor
Ганн14
источник
5
Пользуюсь brew doctor, и по инструкции, потом chownдважды использую для решения проблемы.
yanzi1225627
2
@ yanzi1225627 почему дважды?
Грег Хилстон
31

Первый забег

brew link <package>

Если выдает ошибку, попробуйте автоматическую диагностику

brew doctor

brew doctor дает список проблем, которые могут привести к ошибкам в процессе установки.

Чтобы исправить проблемы в случае конфликтующих файлов, запустите, чтобы получить список всех действий, которые будут выполнены при перезаписи без их фактического выполнения.

Чтобы перечислить все файлы, которые будут удалены:

  brew link --overwrite --dry-run <package>

за которым следует этот запуск, который выполнит перезапись, если вы чувствуете, что действия, выполняемые перезаписью, приведут вашу систему в более стабильное состояние .

Чтобы принудительно установить ссылку и перезаписать все конфликтующие файлы:

 brew link --overwrite <package>
Винай Вемула
источник
13

Если ни одно из вышеперечисленных решений не работает, попробуйте следующее.

sudo chown -R $USER:admin /usr/local
brew link <package-name>
Harshit
источник
3

В моем случае врач-пивовар все понял. В какой-то момент / usr / local / lib / pkgconfig был установлен как принадлежащий пользователю root, а не моей учетной записи. Прописанное средство подействовало -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig
Педро Хименес
источник
2

У меня была такая же проблема, и я решил ее следующим решением: запустите brew doctor из терминала, чтобы проверить все ваши ошибки

затем запустите следующую команду:

sudo chown -R $USER:admin /usr/local/bin /usr/local/etc /usr/local/sbin /usr/local/share

после запуска:

brew link <package_name>
Б.Клео
источник
1

Тип

link valgrind

Он покажет ошибку, что он не может быть связан, потому что такой-то каталог недоступен для записи. Круто, теперь мы сделали его доступным для записи. Тип

sudo chmod a+w the/directory/shown/as/error

Если каталог недоступен для записи, вы также не сможете изменить его разрешение и сделать его доступным для записи. Судо сделает эту операцию возможной. chmod изменит режим и позволит всем (а) пользователям писать (ж) его.

Затем вам будет предложено ввести пароль вашей системы. После этого снова введите

link valgrind

и это сработает на этот раз.

монах Синха
источник
1

Вот что я пробовал, и это сработало:

$ 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
АвкашЧаухан
источник
0

У меня похожая проблема,

$ brew install sqlite Обновление Homebrew ... ==> Автоматически обновляется Homebrew! Обновил 1 тап (homebrew / core). Без изменений в формулах.

Предупреждение: sqlite-3.17.0 уже установлен, он просто не связан.

Я пытался связать это,

$ brew link sqlite Предупреждение: sqlite предназначен только для keg и должен быть связан с --force. Обратите внимание, что это может помешать созданию программного обеспечения.

Тогда сделай это силой,

$ brew link --force sqlite Linking /usr/local/Cellar/sqlite/3.17.0 ... Создано 8 символических ссылок

X. L
источник
0

У меня была такая же проблема с разрешением, но после того, как я даю свое разрешение, все равно разрешение ошибки. И вот я сначала:

brew unlink valgrind

а потом,

brew link valgrind

надеюсь, что это поможет.

mbdrian
источник
0
brew install cocoapods --build-from-source
brew link --overwrite cocoapods

Единственные команды, которые работали у меня после обновления до MAC OS Mojave 10.14.6

Найшта
источник