如何防止Homebrew安装特定的公式依赖?

16
如何在安装未来的公式时防止Homebrew安装特定依赖公式? 在我的Mac上,Python由conda提供,我不想要重复的Pythons。 每次安装一个基于Python的公式时,它都会自动安装。

3个回答

19

首先,查看您需要用于该公式的依赖关系。(使用brew deps --tree xpdf查看树状视图)

brew deps -n formula
dep1
dep2

然后手动安装您想要的依赖项。

brew install dep1

最后使用 --ignore-dependencies 安装公式。

brew install --ignore-dependencies formula

现在brew命令行会抱怨这个选项不受支持,但它对我仍然有效。谢谢! - Matthew Read
5
旗帜没有作用,已被移除。https://github.com/Homebrew/brew/issues/5967#issuecomment-478870868 - fregante

2
@Pau的答案对我有用。需要补充的是,brew deps会显示所有依赖项,包括可选和已安装的依赖项,当依赖项超过十几个时,这会让我感到困难。
最终我使用了brew info
brew info openjdk
#... basic info
==> Dependencies
Build: autoconf ✘, pkg-config ✔
Required: giflib ✔, harfbuzz ✔, jpeg-turbo ✔, libpng ✔, little-cms2 ✔
==> Requirements
Build: XcodeRequired: macOS >= 10.15#... more info

那么@Pau指出的关键部分是使用以下命令进行安装:

brew install --ignore-dependencies openjdk

1

我正在修改brew的代码

diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb
index 5d15185e..0bcb3cf4 100644
--- a/Library/Homebrew/software_spec.rb
+++ b/Library/Homebrew/software_spec.rb
@@ -191,6 +191,8 @@ class SoftwareSpec
   end
 
   def depends_on(spec)
+    # my-mod: ignore python|rav1e
+    return if spec.is_a?(String) && /^(python|rav1e)(@.*)?$/.match?(spec)
     dep = dependency_collector.add(spec)
     add_dep_option(dep) if dep
   end

在我看来,这是对问题的实际回答。 OP要求一个适用于任何未来公式的解决方案。 - Jason Hemann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接