Homebrew:使用新的公式@版本格式列出可用版本

Posted

技术标签:

【中文标题】Homebrew:使用新的公式@版本格式列出可用版本【英文标题】:Homebrew: list available versions with new formula@version format 【发布时间】:2017-09-18 05:41:12 【问题描述】:

Homebrew 最近弃用了 homebrew/versions 以支持通过新的 formula@version 格式在 homebrew/core 上提供版本。例如(根据this answer),您可以使用brew install postgresql@9.5

当然,这不适用于任意版本。例如,install cocoapods@1.1.1 出现“错误:在点击中找不到公式”。

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

【问题讨论】:

【参考方案1】:

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

例如:

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

【讨论】:

这就是我害怕的... 我需要旧版本的程序只有当前版本可用。嗯嗯。 这种方法对于像r这样的包是没有用的;它会查找名称中带有“r”的每个包。 当我搜索git 时,如何防止brew search 包含github 之类的内容? @KenWilliams @aaron 请参阅此答案以了解如何精确搜索 rgit:***.com/questions/43538993/… 谢谢@wisbucky,我没有意识到它可以使用正则表达式。【参考方案2】:

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

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 中设置一个别名或函数。

注意:此方法仅适用于公式,不适用于木桶。

【讨论】:

这太棒了!【参考方案3】:

如果您想在使用search 找到公式后仅查找公式使用的特定版本,您可以通过以下方式获取info

brew info <formula>
# or for a cask:
brew cask info <formula>

例如brew info postgresql@10,或brew cask info vlc

如果您找不到流行的旧版本木桶,您可以通过homebrew-cask-versions 获得它,它可以通过brew tap homebrew/cask-versions 安装。

【讨论】:

【参考方案4】:

要获得没有外来噪音的准确结果,您可以使用带有brew search 的正则表达式。它不包括 qt-postgresqlpostgrest,这将由 brew search postgresql 返回。如果您正在搜索像 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

【讨论】:

以上是关于Homebrew:使用新的公式@版本格式列出可用版本的主要内容,如果未能解决你的问题,请参考以下文章

Homebrew安装特定版本的公式?

如何使用 homebrew 在 MACOS 中安装 node.js

Homebrew 在 macOS High Sierra 中没有列出 Xcode CLT

如何使用 Homebrew 更新公式?

如何将 Python Pillow 作为 Homebrew 公式的必要条件?

Homebrew的公式无法识别