家酿: 列出可用的版本与新的方程式@版本格式

家酿最近不赞成 homebrew/versions,而赞成通过新的 formula@version格式在 homebrew/core上提供版本。例如(根据 这个答案) ,您可以执行 brew install postgresql@9.5

当然,这并不适用于任意的版本,例如,install cocoapods@1.1.1会显示“错误: 在水龙头中找不到公式”。

在旧的方法下,我可以运行 brew versions <formula>来查看可用的版本。现在如何列出可用的版本?

170997 次浏览

您可以使用 brew search搜索版本。

例如:

$ brew search postgresql
postgresql ✔      postgresql@9.4     postgresql@9.5

如果你想在使用 search后查找公式的特定版本,你可以使用以下方法得到 info:

brew info <formula|cask>
例如 brew info postgresql@10brew info vlc。 (Brew 不再需要为此命令显式指定 --cask)

如果你不能找到一个流行的旧版本的木桶,你可以通过 homebrew-cask-versions,这是与 brew tap homebrew/cask-versions安装。

这是一个古老的问题,但我找到了一个“更好”的方法来解决这个问题:

brew info --json PACKAGE_NAME | jq -r '.[].versioned_formulae[]'

例如,在包 node的情况下,这将打印:

$ brew info --json node | jq -r '.[].versioned_formulae[]'
node@10
node@12
node@8

您需要安装程序 jq,以便向下钻取到适当的 JSON (brew install jq)。

由于上面的内容很难编写/记住,我建议在您喜欢的 shell 中设置一个别名或函数。

此方法只适用于公式,而不适用于桶。

要在没有外部噪声的情况下获得精确的结果,可以将 regex 与 brew search一起使用。它不包括由 brew search postgresql返回的 qt-postgresqlpostgrest。这是特别有帮助的,如果您正在搜索一个简短的包名称,如 rgit,否则将返回很多噪音。

$ brew search '/^postgresql$|^postgresql@/'


==> Formulae
postgresql          postgresql@11       postgresql@13       postgresql@9.5
postgresql@10       postgresql@12       postgresql@9.4      postgresql@9.6

注意,brew search似乎支持扩展正则表达式,所以我不能使用下面更有效的正则表达式。当然,您也可以使用 grep 管道来实现同样的功能:

$ brew search postgresql | grep -E '^postgresql(@.*)?$'


postgresql
postgresql@10
postgresql@11
postgresql@12
postgresql@13
postgresql@9.4
postgresql@9.5
postgresql@9.6