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 请参阅此答案以了解如何精确搜索 r
或 git
:***.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-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 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 在 MACOS 中安装 node.js
Homebrew 在 macOS High Sierra 中没有列出 Xcode CLT