Homebrew安装指定版本的Formula

Mac 上的 Nmap 是通过 Homebrew 安装的。前几天遇到了一个 Nmap 新版本才有的 bug,需要降回老版本。于是,研究了 Homebrew 安装指定版本的 Formula 的方法,并记录如下。

方法一(仅限部分 Formulae)

有些 Formulae 本身就包含了不同版本,例如 PythonPostgreSQL,从 Homebrew Formulae 网页上可以看到 “Other versions:” 的信息。对于这种类型的 Formulae,只需要运行以下命令:

1
brew install <formula>@<version>

方法二(不推荐)

然而,Nmap 不属于上述类型。这时候,可以运行以下命令:

1
2
3
4
brew tap homebrew/core --force
brew tap-new $USER/local-tap
brew extract --version=<version> <formula> $USER/local-tap
brew install $USER/local-tap/<formula>@<version>

这个方法的缺点是:

  • 需要下载整个 homebrew/core Tap
  • 需要创建一个本地 Tap
  • 无法通过 brew outdated 获取升级提醒
  • 后续升级 Formula 需要卸载后重新安装

因此,推荐使用下一个方法。

方法三(推荐)

  1. 前往 Homebrew/homebrew-core仓库
  2. 找到想要的 Formula 的 .rb 文件
  3. 点击右上角的 “History” 查看文件的历史
  4. 找到想要的版本,并记录下对应的 Git commit SHA
  5. 运行以下命令:
    1
    2
    3
    4
    5
    git clone git@github.com:Homebrew/homebrew-core.git
    cd homebrew-core/
    git checkout <git-commit-sha>
    brew install ./Formula/<prefix>/<formula>.rb
    brew pin <formula>

这个方法依然需要下载 Homebrew/homebrew-core 仓库,但是后续想要升级时,会方便不少,只需要运行:

1
2
3
4
brew unpin <formula>
brew update
brew outdated
brew upgrade

就可以更新 Formula 了。

参考资料


Homebrew安装指定版本的Formula
https://tomzhu.site/2025/08/03/Homebrew安装指定版本的Formula/
作者
Tom Zhu
发布于
2025年8月3日
许可协议