Homebrew最近弃用了Homebrew /版本,转而通过新的formula@version格式在Homebrew /core上提供版本。例如(根据这个答案),您可以执行brew install postgresql@9.5。

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

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


当前回答

为了得到准确的结果而没有多余的干扰,您可以使用regex和brew搜索。它排除了qt-postgresql和postgrest,这是由brew search postgresql返回的。如果您正在搜索一个短的包名,如r或git,否则将返回很多噪音,这是特别有用的。

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

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

注意,brew搜索似乎支持Extended Regex,所以我不能使用下面更有效的Regex。当然,你可以使用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

其他回答

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

例如:

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

如果你想在使用搜索找到公式后查找它所使用的特定版本,你可以通过以下方式获得信息:

brew info <formula|cask>

例如,brew info postgresql@10或brew info vlc。 (Brew不再需要为该命令显式指定——cask。)

如果你找不到流行的旧版本的木桶,你可以通过自制木桶版本来获得它,它可以安装在brew tap自制木桶版本上。

这是一个老问题,但我找到了一个“更好的”(对我来说)方法:

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

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

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

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

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

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

为了得到准确的结果而没有多余的干扰,您可以使用regex和brew搜索。它排除了qt-postgresql和postgrest,这是由brew search postgresql返回的。如果您正在搜索一个短的包名,如r或git,否则将返回很多噪音,这是特别有用的。

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

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

注意,brew搜索似乎支持Extended Regex,所以我不能使用下面更有效的Regex。当然,你可以使用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