I like using Homebrew for installing Unix software on my Mac, and appreciate that it doesn't try to install multiple copies of things like Python. There are some packages I've already installed manually, though, and I don't want Homebrew to install its own copies of them.

In my current situation, I installed OCaml using the standard installer. Now I want to install Coq via Homebrew. I see via brew deps coq that it depends on OCaml. I know I can tell it to skip installing OCaml this time via brew install --ignore-dependencies coq. However, I'd rather not have to do that every time I install a Homebrew package that requires OCaml.

How can I make Homebrew pretend that it installed software that I installed through other means, so that it doesn't try to install a duplicate copy?

  • 1
    This problem is the main reason I use another package manager. /usr/local is the default for builds - package manager builds can be conmtrolled to be elsewhere.
    – mmmmmm
    Oct 10 '20 at 9:21

Take the path that you used for --prefix= during your ./configure and sym-link that into the Cellar/ directory that Homebrew is using. Homebrew will see these directories and see the dependencies as satisfied (unless you need to have them compiled with or without certain features to make Homebrew's formulas compile correctly). If your manually-compiled deps aren't compiled correctly, you'll probably get errors out of Homebrew.

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

(Note the trailing slash on the first path, and lack of trailing slash on the second. OS X can be picky about these slashes when creating sym-links.)

This is the wrong way to do it, you should just be using --ignore-dependencies coq — that's what it's there for.

  • 1
    Nice answer of what was asked, but also a pointer to the recommended way to suppress certain dependencies.
    – bmike
    Sep 28 '11 at 19:21
  • This is a very good solution for me after i spent hours installing dependencies for Octave which included the elussive gcc (an alternative to clang//LLVM)...
    – nyxee
    Apr 5 '17 at 5:11
  • What is this --prefix and ./configure? Those seem totally random, no mention of them in the question??
    – user14492
    Jul 22 '20 at 0:05
  • 1
    @user14492 They are part of the standard Unix build process if the build (which most do) uses GNU autotools
    – mmmmmm
    Oct 10 '20 at 9:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .