如何防止Homebrew安装通过其他方式安装的软件副本?


12

我喜欢使用Homebrew在Mac上安装Unix软件,并欣赏它不会尝试安装Python之类的多个副本。不过,有些软件包我已经手动安装了,我不希望Homebrew安装它们自己的副本。

在当前情况下,我使用标准安装程序安装了OCaml。现在,我想通过Homebrew安装Coq。我通过brew deps coq它看到它取决于OCaml。我知道我可以通过告诉它这次跳过安装OCaml brew install --ignore-dependencies coq。但是,我宁愿每次安装需要OCaml的Homebrew软件包时都不必这样做。

如何使Homebrew假装它通过其他方式安装了我安装的软件,以便它不尝试安装重复副本?

Answers:


14

采取您在符号链接--prefix=过程中使用的路径,并将其符号./configure链接到Cellar/Homebrew使用的目录中。Homebrew将看到这些目录并看到满意的依赖关系(除非您需要使用或不使用某些功能对其进行编译才能正确编译Homebrew的公式)。如果您手动编译的Dep编译不正确,您可能会从Homebrew中得到一些错误信息。

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

(请注意,第一个路径上的结尾斜杠,而第二个路径上没有结尾斜杠。在创建符号链接时,OS X可能会对这些斜杠保持挑剔。)

这是错误的方法,您应该只是在使用--ignore-dependencies coq-这就是它的用途。


1
很好地回答了所询问的内容,但也提供了一种建议的抑制某些依赖性的方法的指针。
bmike

在我花了几个小时为Octave安装依赖项之后,这是一个非常好的解决方案,其中包括难以捉摸的gcc(替代clang // LLVM)...
nyxee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.