brew switch
XiaO / 2022-01-21
当需要在软件的不同版本之间快速切换时,brew switch formula version
,用起来着实方便。然而,Homebrew 更新至 2.6.0 版本后,brew switch
命令被抛弃,其相应的功能也一同死翘翘了。
官方对一些事物的抛弃有其「正当」的理由,而「愚众」对自己的需求有自己的定义。
那么,在 brew switch
被抛弃而官方又没有给出一个更好的方案时,就只能想办法「恢复」该命令了。用时下流行的话说,就是「又不是不能用」。借用网友维护的包含旧版本 Homebrew 内核命令的仓库 laggardkernel/homebrew-tap。
安装 tap 源
% brew tap user/repo # install a given tap, repo should be named with homebrew-repo
% brew untap user/repo # removes the given tap
% brew tap laggardkernel/tap # 安装 laggardkernel/tap 源
% brew switch --help # 查看命令
tap 源 可简单理解为 GitHub 上的维护者,不同的 tap 源安装在 /usr/local/Homebrew/Library/Taps/
文件夹中,譬如,如下我所用到的 tap 源
├── beeftornado
│ └── homebrew-rmtree
├── brewsci
│ └── homebrew-bio
├── buo
│ └── homebrew-cask-upgrade
├── emeryberger
│ └── homebrew-hoard
├── homebrew
│ ├── homebrew-bundle
│ ├── homebrew-cask
│ ├── homebrew-cask-fonts
│ ├── homebrew-cask-versions
│ └── homebrew-core
├── laggardkernel # 新安装的 tap 源
│ └── homebrew-tap
└── yt-dlp
└── homebrew-taps
安装特定版本软件
% brew edit AppName # 打开 formula
sha256 :no_check # 编辑 formula 中的 SHA 值为 no_check
安装 0.89.4 版本的 Hugo
% brew edit hugo
# 修改之前的版本 0.92.0
url "https://github.com/gohugoio/hugo/archive/v0.92.0.tar.gz"
sha256 "3ac140757a7322f0a7511d75fb3b1e77e6a0f0c6e4ea1b0afdbebc00e0d0a7d1"
# 修改之后的版本 0.89.4
url https://github.com/gohugoio/hugo/archive/refs/tags/v0.89.4.tar.gz
sha256 :no_check
% brew unlink hugo # unlink 目前已安装的 Hugo 版本 0.92.0
% brew install --build-from-source hugo # 通过本地源代码编译的方式安装修改之后的版本 0.89.4
% brew pin hugo # 锁定该版本,防止其更新
% brew unpin hugo # 解除锁定
软件版本切换
% brew list --versions hugo # 查看现在所有已安装的 Hugo 版本
hugo 0.89.4 0.92.0
% brew switch hugo 0.92.0 # 切换到 0.92.0 版
% brew switch hugo 0.89.4 # 切换到 0.89.4 版
% hugo version # 查看现在使用的版本
Homebrew cheatsheet
% brew install hugo # Install a package
% brew uninstall hugo # Remove/Uninstall a package
% brew upgrade hugo # Upgrade a package
% brew unlink hugo # Unlink
% brew link hugo # Link
% brew list --versions hugo # See what versions are installed
% brew switch hugo 0.89.4 # Change versions
% brew info hugo # List versions, caveats, etc
% brew cleanup hugo # Remove old versions
% brew edit hugo # Edit this formula
% brew cat hugo # Print this formula
% brew home hugo # Open homepage
% brew search hugo # Search for formulas
% brew install --cask librewolf # Install the LibreWolf browser
% brew list --cask # List installed applications
% brew update # Update brew and cask
% brew upgrade # Upgrade all packages
% brew list # List installed
% brew outdated # What’s due for upgrades?
% brew doctor # Diagnose brew issues