brew install X 和 brew cask install X 有什么区别?

278

我正在熟悉整个 Homebrew 工具包,但文档相当简陋。 什么是 Cask、Cellar 和 Tap?


3
好的,请提供需要翻译的内容。 - Ciro Santilli OurBigBook.com
4个回答

344

Homebrew-Cask 是 Homebrew 的扩展程序,可用于安装诸如 Google Chrome 或 Atom 等 GUI 应用程序。最初独立开发,但现在其维护者与 Homebrew 的核心团队密切合作。

Homebrew 将其软件包定义文件称为“formulae”(“formula”的英式复数形式)。Homebrew-Cask 称之为“casks”。和 formula 一样,cask 是以基于 Ruby 的 DSL 写成的文件,描述了如何安装某个东西。

Cellar 是 Homebrew 安装软件的地方。其默认路径是 /usr/local/Cellar(在 Apple Silicon 上是 /opt/homebrew/Cellar)。它还会从标准位置添加符号链接到此路径下的内容。

例如,当您键入 brew install git 时:

  1. Homebrew 将其安装在 /usr/local/Cellar/git/<version>/ 下,其中 git 二进制文件位于 /usr/local/Cellar/git/<version>/bin/git
  2. 它将从 /usr/local/bin/git 添加符号链接到该二进制文件

这使得 Homebrew 能够跟踪由 Homebrew 安装的内容和其他方式安装的软件。

tap 是 formulae 的来源。默认为 homebrew/core,但您可以添加更多来源。创建自己软件的 formula 的最简单方法是创建名为 homebrew-<something> 的 GitHub 存储库;将您的 formula 文件放入其中;然后键入 brew tap <username>/<something> 将此新的 formula 来源添加到 Homebrew 安装中,并获取其所有 formula 。

一些公司拥有自己的内部Homebrew工具库。还有很多公共的工具库,比如Atlassian软件的atlassian/tap和射电天文学的ska-sa/tap。Homebrew本身曾经有额外的工具库,比如homebrew/science,但现已停用并将其导入到了homebrew/core中。


2
我个人更喜欢不那么晦涩的“公式”,但Homebrew称它们为“formulæ”。 - bfontaine
顺便提一下: 在 Apple Silicon 上,Homebrew的安装目录/opt/homebrew。因此,在Apple Silicon机器上,Cellar的默认路径是/opt/homebrew/Cellar - informatik01
当一个软件变得如此普遍和广泛时,一个共同和标准的词汇表会让一切变得更容易,包括 casks、formulae 和 taps。 - Antonio Sesto
1
@AntonioSesto 同意。过去已经讨论过,但没有任何进展现在 - bfontaine
1
@bfontaine。我明白了,感谢您提供的参考文献:这是一篇有趣的阅读材料。在我工作的地方,有很多游客多年来都去了错误的入口,导致另一个入口排队等候。标志从未受到责备(和更改)。只有游客会被指责......因为他们不理解标志。 - Antonio Sesto

49
个人而言,我仅基于主要(如果不是唯一的)区别之一来区分brewcask,即由cask管理图形GUI应用程序,而不仅仅是brew。(还有其他差异,但我不太了解)。
以下内容改编自apple.stackexchange中的'Graham Miln':

Homebrew

brewHomebrew项目的核心命令。

OS X上缺失的软件包管理器

Homebrew安装你需要的东西,Apple没有提供。

Homebrew通常只处理命令行软件(不是图形GUI应用程序)。大部分软件都是在开源许可证下分发的。

Cask

brew cask是扩展至brew的一个功能,允许管理图形GUI应用程序

Homebrew Cask扩展了Homebrew,并将其优雅、简单和快速带到了OS X应用程序和大型二进制文件。

Cask处理各种软件和许可证。
Cask提供了一种命令行管理安装图形GUI应用程序的方法。

许可证

brewcask可用性并不意味着具有任何特定的许可证。


1
这并不总是正确的,但大多数情况下是如此。 - SwiftMango
有些应用程序既可以是命令行界面(CL)又可以是图形用户界面(GUI),例如R,这样不会让人感到有点混乱吗? - radek
@radek,我不确定你的修辞性评论如何有所帮助。这是个不错的经验法则,就像SwiftMango所指出的那样。 - cellepo
有时候两者之间的源代码或构建方式会有所不同,比如Emacs。 - undefined

6

引用官方文档:

Cask

https://github.com/Homebrew/homebrew-cask

Homebrew Cask是Homebrew的扩展,将其优雅、简单和快速的特性应用于GUI macOS应用程序的安装和管理,例如Atom和Google Chrome。

Cellar

https://docs.brew.sh/Formula-Cookbook

Homebrew将安装文件安装到“Cellar”目录中并在/usr/local中建立符号链接,以便其他程序可以看到安装的内容。

Tap

https://docs.brew.sh/Taps

Taps (第三方存储库)

brew tap可将更多存储库添加到brew跟踪、更新和安装公式的列表中。默认情况下,tap假定存储库来自GitHub,但该命令不限于任何一个位置。


3

命令更新:

当前版本的Homebrew已弃用“brew cask”语法。从现在开始,请使用--cask修饰符。

brew --cask


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