Що робить “заварювальне посилання”?


80

Коли я запускаю, brew doctorя отримую загальне попередження:

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
# [...]

Що означає від’єднання кегів? І що саме робить brew link?


Відповіді:


40

brew linkстворює символічні посилання на установки, які ви виконували вручну Cellar. Це дозволяє вам мати можливість гнучко встановлювати речі самостійно, але все одно брати участь як залежності у homebrewформулах.

Докладнішу інформацію див. У розділі поширених запитань .

Ви повинні слідувати цим вказівкам і запускати brew linkзаписи, перелічені в ньому.


15
Я шукав відповіді на більш низькому рівні: де знаходяться ці символічні посилання? Що / де знаходиться льох? Якщо ви пояснили цю інформацію, я хотів би прийняти цю відповідь.
mbaytas

2
Символьні посилання можна побачити lsяк звичайні посилання. ls -lh /usr/local/bin/python=> /usr/local/bin/python -> ../Cellar/python/3.6.4_3/bin/python. Для повного посилання на всі символічні посилання homebrew управляє я також цікавий. Підвал - це просто місце проживання всіх пакетів Homebrew. Це під /usr/local/Cellar.
Андреа Бергонцо,

26

Homebrew може дозволити встановлювати кілька версій формули. Наприклад, є формули, що називаються nodeта node@10і подібні.

$ brew info node@10
...
==> Caveats
node@10 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

Якщо у мене є і те, nodeі інше node@10, де nodeзнаходиться v11. Пізніше я можу вирішити активувати попередню версію за допомогою brew link:

$ brew unlink node

$ brew link node@10

$ cd /urs/local/bin
$ ls -l node
lrwxr-xr-x  1 user  admin  34 12 Dec 20:07 node -> ../Cellar/node@10/10.14.1/bin/node

Тут символічне посилання nodeвказує на попередню версію ( keg-only), встановлену в Cellar.


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