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


86

Примітка: Я не дуже добре користуюся оболонкою.

Я намагався встановити Valgrindза допомогою brewYosemite.

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

Що відбувається і як це виправити?

Відповіді:


103

Схоже на питання дозволу. Я спробував би це зробити

chmod 755 /usr/local/lib/pkgconfig

Це має зробити це доступним, а потім спробуйте

brew link valgrind

Якщо це не спрацює, я спробую перевірити це

brew doctor

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>

3

У моєму випадку пивоварний лікар все зрозумів. У якийсь момент / usr / local / lib / pkgconfig було встановлено як власність root, а не мого облікового запису. Працював призначений засіб -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig

2

У мене була та ж проблема, і я вирішив наступне рішення: запустіть заварювального лікаря з терміналу, щоб перевірити всі ваші помилки

потім виконайте наступну команду:

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 змінить режим і дозволить усім (а) користувачам писати (w).

Далі вам буде запропоновано ввести пароль вашої системи. Після цього знову введіть

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 натискання (саморобний / основний). Без змін у формулах.

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

Я намагався зв'язати це,

$ brew link sqlite Попередження: sqlite є лише кегом і повинен бути зв’язаний із --force Зверніть увагу, що це може заважати побудові програмного забезпечення.

Тоді робіть це силою,

$ brew link --force sqlite Посилання /usr/local/Cellar/sqlite/3.17.0 ... Створено 8 посилань


0

У мене була така сама проблема з дозволом, але після того, як я дав свій дозвіл, все одно дозвіл на помилку. І ось я, спочатку:

brew unlink valgrind

і потім,

brew link valgrind

сподіваюся, це допоможе.


0
brew install cocoapods --build-from-source
brew link --overwrite cocoapods

Єдині команди, які працювали у мене після оновлення до MAC OS Mojave 10.14.6

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.