"brew tap" 是什么意思?

410
有时我会看到文章中提到在运行brew install之前需要先运行brew tap命令。我想知道tap是什么意思,为什么在运行install之前必须先运行tap

21
在Homebrew的主资源库之外访问其他存储库。在安装来自其他存储库的软件包之前,您必须先添加tap。您可以使用“brew tap”命令查看所有当前的tap。 - Caleb
15
另一个评论是正确的,但需要解释一下,当你“tap”一个资源时,你就可以访问它。但这也是另一个与啤酒/酿造相关的引用(就像“自制啤酒”一样),因为当你“tap”一个啤酒桶时,你实际上是将阀门敲入桶内以“获得啤酒访问权”。 - Mark Setchell
19
如果你和我一样被与啤酒有关的词汇搞糊涂了,可以查看这个术语表(glossary)来帮助理解:https://github.com/Homebrew/brew/blob/master/docs/Formula-Cookbook.md#homebrew-terminology。请注意,翻译时尽量保持原文意思不变,并使内容更加通俗易懂,但不要添加任何额外的解释或信息。 - Andrew M
2
为什么这个问题会出现在StackOverflow上?它与编写代码无关--[unix.se]或[apple.se]更明显地适合此类问题。 - Charles Duffy
2
对于来自Ubuntu(Linux)的人来说,这相当于外部PPA。 - Sudip Bhandari
显示剩余2条评论
4个回答

407

tap命令允许Homebrew“接入”另一个软件公式的存储库。一旦您这样做,就扩大了可安装软件的选项。

这些额外的Git存储库(位于/usr/local/Homebrew/Library/Taps内)描述了可以安装的软件包公式集。

例如:

brew tap                     # list tapped repositories
brew tap <tapname>           # add tap
brew untap <tapname>         # remove a tap

14
“brew cask” 似乎会添加 “caskroom/cask” repo。这是一种快捷方式,本质上与“brew tap caskroom/cask”相同吗? - skube
12
这意味着brew tap会添加一个非官方的第三方软件仓库? - wisbucky
1
你如何列出特定选项卡中的公式? - evdama
3
对我来说,路径是/usr/local/Homebrew/Library/Taps。 - Carl Pritchett
2
"..公式库",formulae的意思是什么? - vikramvi
@vikramvi 一个用Ruby编写的包定义,本质上是一个可以通过brew create <URL>创建的ruby文件,其中URL是一个zip/tarball。这些ruby文件使用Formula API。它为Homebrew提供安装软件的指令和元数据。它们都是Formula类。 - ShifraSec

55

brew tap命令会将更多的代码库添加到brew所跟踪、更新和安装的公式列表中

brew tap <user>/<repo>会在https://github.com/user/homebrew-repo浅克隆代码库。请注意,brew tap会在存储库名称前缀中加上"homebrew-"。然后,brew就可以像处理Homebrew的规范存储库中的公式一样处理这些公式

完整文档可以在此处找到,其中包含所有可用的选项。


52

Homebrew术语:

  • packageformularuby file:这通常涉及命令行(CLI)软件
  • bottle:二进制程序已经针对某些操作系统构建好了(macOS montery,macOS big_sur,arm64_monterey,arm64_big_sur,catalina,x86_64_linux)(配置和make已完成)
  • casks:GUI程序或字体;这是homebrew的扩展,允许我们安装MacOS本地应用程序,例如:Google Chrome(brew cask install google-chrome),iTerm(""iterm2),Visual Studio Code(" " visual-studio-code)等。以及安装字体:Roboto [Mono](""font-roboto/""font-roboto-mono),Latin Modern("" font-latin-modern)等。
  • taps:[Github|Gitlab|...]存储库,包含额外的[下载的公式]软件包,这些软件包不是标准的,即没有纳入官方homebrew存储库,该存储库包含所有可下载的[公式]软件包。
通过使用“taps”,您可以扩展可以通过Homebrew安装的软件包列表。通过“tap”存储库,您会将存储库本地下载(字面上是git clone)。存储库中包含Ruby文件(公式),告诉Homebrew如何下载、配置、构建、安装等其他软件包的清单。然后,当您执行brew install X时,brew将浏览您本地拥有的官方/标准Homebrew存储库,如果没有找到X的公式,则会浏览您的“taps”,如果找到了X的公式,则运行它(该公式是一个ruby文件)。
软件包被安装在/usr/local/Cellar/<package>中,并带有指向/usr/local/bin/usr/local/lib等位置的符号链接。
Homebrew核心存储库公式: 下载到/usr/local/Homebrew/Library/taps/homebrew/homebrew-core/formula中。
您可以在https://formulae.brew.sh/找到任何软件包。

2
可爱的解释。谢谢。 - SPS

-2
如果你熟悉Ubuntu的话,它类似于PPA。

那如果不是呢?Linux本身对PPA一无所知。 - undefined
你现在开心了吗 :D - undefined

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