Jak mogę zapobiec instalowaniu przez Homebrew duplikatu oprogramowania zainstalowanego za pomocą innych środków?

11

Lubię używać Homebrew do instalowania oprogramowania Unix na moim Macu i doceniam, że nie próbuje on instalować wielu kopii rzeczy, takich jak Python. Istnieją jednak pewne pakiety, które już zainstalowałem ręcznie i nie chcę, aby Homebrew instalował ich własne kopie.

W mojej obecnej sytuacji zainstalowałem OCaml przy użyciu standardowego instalatora. Teraz chcę zainstalować Coq przez Homebrew. Widzę przez brew deps coq że zależy od OCaml. Wiem, że mogę mu powiedzieć, aby pominął instalację OCaml tym razem brew install --ignore-dependencies coq. Jednak wolałbym nie robić tego za każdym razem, gdy instaluję pakiet Homebrew, który wymaga OCaml.

Jak sprawić, by Homebrew udawał, że zainstalował oprogramowanie, które zainstalowałem za pomocą innych środków, aby nie próbował instalować duplikatu kopii?

Jay Lieske
źródło

Odpowiedzi:

14

Wybierz ścieżkę, której użyłeś --prefix= podczas twojego ./configure i sym-link to do Cellar/ katalog, którego używa Homebrew. Homebrew zobaczy te katalogi i zobaczy zależności jako spełnione (chyba że będziesz musiał skompilować je z pewnymi funkcjami lub bez nich, aby formuły Homebrew były poprawnie kompilowane). Jeśli ręcznie skompilowane depsy nie są poprawnie skompilowane, prawdopodobnie wystąpią błędy z Homebrew.

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

(Zwróć uwagę na końcowy ukośnik na pierwszej ścieżce i brak końcowego ukośnika na drugim. OS X może być wybredny w stosunku do tych ukośników podczas tworzenia powiązań sym).

To jest zły sposób, aby to zrobić, powinieneś po prostu używać --ignore-dependencies coq - po to jest.

Bryson
źródło
1
Ładna odpowiedź na pytanie, ale także wskaźnik do zalecanego sposobu tłumienia pewnych zależności.
bmike
Jest to dla mnie bardzo dobre rozwiązanie, po tym jak spędziłem wiele godzin instalując zależności dla Octave, które zawierały elussive gcc (alternatywa dla clang // LLVM) ...
nyxee