我正在熟悉整个自制工具包,文档相当糟糕。 木桶、酒窖和水龙头是什么?


当前回答

我个人将brew和cask区分开来只是基于其中一个主要(如果不是唯一的主要)区别,即图形GUI应用程序是由cask而不是仅由brew管理的。(还有其他我不太了解的区别)。

以下内容改编自apple.stackexchange上的“Graham Miln”:

家酿

brew是Homebrew项目的核心命令。

OS X缺少包管理器 Homebrew可以安装你需要的东西,而苹果没有。

Homebrew通常处理命令行软件(而不是图形GUI应用程序)。大多数软件是在开源许可下发布的。

Cask

brew桶是brew的扩展,允许管理图形化GUI应用程序。

家酿桶扩展了家酿,带来了它的优雅,简单, 以及OS X应用程序和大型二进制文件的速度。

Cask涉及软件和许可证的混合业务。

Cask提供了一种命令行管理图形化GUI应用程序安装的方法。

许可

可通过酿造或桶饮用并不意味着任何特定的许可。

其他回答

命令更新:

homebrew当前版本已弃用“brew cask”语法。从现在开始,用——cask修饰词代替。

啤酒,桶

Homebrew- cask是Homebrew的扩展,用于安装谷歌Chrome或Atom等GUI应用程序。它开始时是独立的,但它的维护者现在与Homebrew的核心团队密切合作。

Homebrew将其包定义文件称为“formulae”(“formula”的英式复数)。Homebrew-Cask称它们为“桶”。就像公式一样,桶是用基于ruby的DSL编写的文件,用于描述如何安装某些东西。

酒窖是Homebrew安装东西的地方。默认路径为/usr/local/Cellar (Apple Silicon上的/opt/homebrew/Cellar)。然后从标准位置向其添加符号链接。

例如,当你输入brew install git:

Homebrew将其安装在/usr/local/ cellar /git/<version>/下,git二进制文件安装在/usr/local/ cellar /git/<version>/bin/git下 它将一个符号链接从/usr/local/bin/git添加到该二进制文件中

这使得Homebrew可以跟踪通过Homebrew安装的软件和通过其他方式安装的软件。

水龙头是公式的来源。默认是homebrew/core,但您可以添加更多。为自己的软件创建公式的最简单的方法是创建一个名为homebrew的GitHub存储库-<something>;把你的公式文件放进去;然后输入brew tap <username>/<something>,将这个新的公式源添加到您的Homebrew安装中,以便访问所有的公式。

一些公司内部有自己的家用啤酒水龙头。有很多公共的tap,比如atlassian软件的atlassian/tap,或者射电天文学的ska-sa/tap。家酿本身曾经有额外的水龙头,如家酿/科学,但他们弃用了它们,并进口了家酿/核心的配方。

我个人将brew和cask区分开来只是基于其中一个主要(如果不是唯一的主要)区别,即图形GUI应用程序是由cask而不是仅由brew管理的。(还有其他我不太了解的区别)。

以下内容改编自apple.stackexchange上的“Graham Miln”:

家酿

brew是Homebrew项目的核心命令。

OS X缺少包管理器 Homebrew可以安装你需要的东西,而苹果没有。

Homebrew通常处理命令行软件(而不是图形GUI应用程序)。大多数软件是在开源许可下发布的。

Cask

brew桶是brew的扩展,允许管理图形化GUI应用程序。

家酿桶扩展了家酿,带来了它的优雅,简单, 以及OS X应用程序和大型二进制文件的速度。

Cask涉及软件和许可证的混合业务。

Cask提供了一种命令行管理图形化GUI应用程序安装的方法。

许可

可通过酿造或桶饮用并不意味着任何特定的许可。

引用官方文件:

Cask

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

家酿桶扩展了家酿,带来了它的优雅,简单, 以及快速安装和管理GUI macOS应用程序 比如Atom和谷歌Chrome。

地窖

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

家酿安装到地窖,然后符号链接的一些 安装到/usr/local,以便其他程序可以看到 在继续。

Tap

https://docs.brew.sh/Taps

水龙头(第三方存储库) 工具中添加了更多的存储库 用于brew跟踪、更新和安装的公式列表。通过 默认情况下,tap假设存储库来自GitHub,但是 命令不局限于任何一个位置。