Как я могу предотвратить установку Homebrew дубликата программного обеспечения, которое я установил другими способами?

12

Мне нравится использовать Homebrew для установки программного обеспечения Unix на мой Mac, и я ценю, что он не пытается установить несколько копий таких вещей, как Python. Однако есть некоторые пакеты, которые я уже установил вручную, и я не хочу, чтобы Homebrew устанавливал их собственные копии.

В моей текущей ситуации я установил OCaml, используя стандартный установщик. Теперь я хочу установить Coq через Homebrew. Я вижу, brew deps coqчто это зависит от OCaml. Я знаю, что могу сказать, чтобы пропустить установку OCaml на этот раз через brew install --ignore-dependencies coq. Однако я бы предпочел не делать это каждый раз, когда я устанавливаю пакет Homebrew, для которого требуется OCaml.

Как я могу заставить Homebrew делать вид, что он установил программное обеспечение, которое я установил другими способами, чтобы он не пытался установить дубликат?

Джей Лиеске
источник

Ответы:

14

Возьмите путь, который вы использовали --prefix=во время вашей ./configureссылки, и символическую ссылку в Cellar/каталог, который использует Homebrew. Homebrew увидит эти каталоги и увидит, что зависимости удовлетворены (если вам не нужно их компилировать с определенными функциями или без них, чтобы формулы Homebrew компилировались правильно). Если ваши скомпилированные вручную декы не скомпилированы правильно, вы, вероятно, получите ошибки из Homebrew.

ln -s /path/from/prefix/ /usr/local/Cellar/path/from/prefix

(Обратите внимание на косую черту на первом пути и отсутствие косой черты на втором. OS X может быть требовательна к этим слешам при создании символических ссылок.)

Это неправильный способ сделать это, вы должны просто использовать --ignore-dependencies coq- вот для чего он нужен.

Брайсон
источник
1
Хороший ответ на вопрос, но также указатель на рекомендуемый способ подавления определенных зависимостей.
bmike
Это очень хорошее решение для меня после того, как я потратил часы на установку зависимостей для Octave, в которую входил elussive gcc (альтернатива clang // LLVM) ...
nyxee