Homebrew:使用新的 formula@version 格式列出可用版本
Homebrew: list available versions with new formula@version format
Homebrew 最近弃用了 homebrew/versions
,转而支持通过新的 formula@version
格式在 homebrew/core
上提供版本。例如(根据 this answer),您可以执行 brew install postgresql@9.5
。
当然,这不适用于任意版本。例如,install cocoapods@1.1.1
出现 "Error: No formulae found in taps"。
在旧方法下,我可以 运行 brew versions <formula>
查看可用版本。我现在如何列出可用版本?
您可以使用 brew search
.
搜索版本
例如:
$ brew search postgresql
postgresql ✔ postgresql@9.4 postgresql@9.5
如果您只想在使用 search
找到公式后查找公式使用的特定版本,您可以通过以下方式获得 info
:
brew info <formula|cask>
例如brew info postgresql@10
,或 brew info vlc
。
(Brew 不再需要为此命令显式指定 --cask
。)
如果您找不到流行的旧版本的 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
).
由于以上对 write/remember 来说很粗糙,我建议在您喜欢的 shell.
中设置一个别名或函数
注意:此方法仅适用于配方,不适用于木桶。
要获得没有外来噪音的准确结果,您可以将正则表达式与 brew search
结合使用。它不包括 qt-postgresql
和 postgrest
,它们会被 brew search postgresql
编辑 return。如果您正在搜索像 r
或 git
这样的短包名称,这将特别有用,否则 return 会有很多噪音。
$ 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
Homebrew 最近弃用了 homebrew/versions
,转而支持通过新的 formula@version
格式在 homebrew/core
上提供版本。例如(根据 this answer),您可以执行 brew install postgresql@9.5
。
当然,这不适用于任意版本。例如,install cocoapods@1.1.1
出现 "Error: No formulae found in taps"。
在旧方法下,我可以 运行 brew versions <formula>
查看可用版本。我现在如何列出可用版本?
您可以使用 brew search
.
例如:
$ brew search postgresql
postgresql ✔ postgresql@9.4 postgresql@9.5
如果您只想在使用 search
找到公式后查找公式使用的特定版本,您可以通过以下方式获得 info
:
brew info <formula|cask>
例如brew info postgresql@10
,或 brew info vlc
。
(Brew 不再需要为此命令显式指定 --cask
。)
如果您找不到流行的旧版本的 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
).
由于以上对 write/remember 来说很粗糙,我建议在您喜欢的 shell.
中设置一个别名或函数注意:此方法仅适用于配方,不适用于木桶。
要获得没有外来噪音的准确结果,您可以将正则表达式与 brew search
结合使用。它不包括 qt-postgresql
和 postgrest
,它们会被 brew search postgresql
编辑 return。如果您正在搜索像 r
或 git
这样的短包名称,这将特别有用,否则 return 会有很多噪音。
$ 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