【问题标题】:Homebrew: list available versions with new formula@version formatHomebrew:使用新的公式@版本格式列出可用版本
【发布时间】: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> 来查看可用版本。如何列出现在可用的版本?

【问题讨论】:

    标签: homebrew


    【解决方案1】:

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

    例如:

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

    【讨论】:

    • 这就是我害怕的... 我需要旧版本的程序只有当前版本可用。嗯嗯。
    • 这种方法对于像r这样的包是没有用的;它会查找名称中带有“r”的每个包。
    • 当我搜索git 时,如何防止brew search 包含github 之类的内容?
    • @KenWilliams @aaron 请参阅此答案以了解如何精确搜索 rgitstackoverflow.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
      

      【讨论】:

        猜你喜欢
        • 2011-04-28
        • 2020-02-12
        • 2020-12-18
        • 2023-03-14
        • 2019-05-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多