brew 安装指定版本命令行工具 tmux 多版本实现
Homebrew 是 macOS 命令安装工具,其核心库里的命令行在 github homebrew-core 仓库上维护。
核心库命令大概有 5000 条左右,大部分的命令行工具只保留了最新版本的 .rb 安装脚本。因此,如果想通过 brew 安装指定版本或命令的多个版本,需要借助 git 操作来实现。
接下来以同时安装 tmux 最新版本和 2.4 版本为例进行说明:
1、安装最新版 tmux
brew install tmux tmux -V
安装完成后运行 tmux -V 查看到当前最新版本为 tmux 2.8
2、查找 tmux 2.4 指定版本的 commit hash
下载 homebrew-core 至本地,查找 tmux.rb 提交历史中 2.4 版本的 commit hash
git clone https://github.com/Homebrew/homebrew-core.git cd homebrew-core git log master --grep=2.4 Formula/tmux.rb
版本库比较大,查询一段时间后,命令行输出以下内容:
commit 04c280961f568c8fcd25aa35d58834e016ccbd64 Author: BrewTestBot <brew-test-bot@googlegroups.com> Date: Thu Apr 20 13:27:39 2017 +0100 tmux: update 2.4 bottle. commit 2d2034afc6e4dfab0a1c48f5edd2c5478576293b Author: ilovezfs <ilovezfs@icloud.com> Date: Thu Apr 20 05:22:28 2017 -0700 tmux 2.4 Closes #12673. Signed-off-by: ilovezfs <ilovezfs@icloud.com> (END)
由此可知,tmux 2.4 版本的 commit hash 为 04c280961f568c8fcd25aa35d58834e016ccbd64
3、切换 git 指定分支使用本地脚本安装 tmux
由于已经安装过最新版 tmux 了,执行以下命令可以临时删除环境变量里的 alias 软链
brew unlink tmux
在本地的 homebrew-core 目录中,切换 git 至指定分支,并使用本地相对路径,安装需要的命令行工具。
git checkout 04c280961f568c8fcd25aa35d58834e016ccbd64 brew install ./Formula/tmux.rb
4、切换至任意版本的 tmux
安装完成后,可以通过 ls 看到同时安装了 2.4 和 2.8 两个版本
ls /usr/local/Cellar/tmux
之后使用 brew switch 命令即可在多个不同版本之间进行切换
brew switch tmux 2.8 brew switch tmux 2.4