Homebrewのパッケージバージョンを切(き)り替(か)える

Homebrewでインストールしたパッケージのバージョンを切(き)り替(か)える方法(ほうほう)のメモ。
ググればいくらでも出(で)てきますが、古(ふる)い方法(ほうほう)だったりしてよく迷(まよ)うので改(あらた)めてまとめました。

古(ふる)いバージョンのパッケージをインストールする

そもそも古(ふる)いバージョンを入(い)れるところから。
まずは brew search でどのバージョンがインストールできるかを調(しら)べます。

$ brew search ffmpeg
==> Formulae
ffmpeg                            ffmpeg@2.8                        ffmpeg@5
ffmpeg2theora                     ffmpeg@4                          ffmpegthumbnailer

ここで brew install ffmpeg を実行(じっこう)するとlatestバージョンがインストールでき、 brew install ffmpeg@2.8 を実行(じっこう)すると2.8がインストールできます。

$ brew list | grep ffmpeg
ffmpeg
ffmpeg@2.8

バージョンを切(き)り替(か)える

ただ両(りょう)バージョンをインストールしただけだとlatestバージョンとなっています。

$ ffmpeg -version
ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
$ which ffmpeg
/usr/local/bin/ffmpeg
$ ls -l /usr/local/bin/ffmpeg
lrwr-xr-x  1 fwhy  admin  33 12 27 19:39 /usr/local/bin/ffmpeg -> ../Cellar/ffmpeg/6.0_2/bin/ffmpeg

古(ふる)いバージョンを実行(じっこう)するにはフルパスで直接(ちょくせつ)実行(じっこう)する必要(ひつよう)がありますが、 それだと面倒(めんどう)なので brew link を使用(しよう)してリンク先(さき)を変更(へんこう)します。

$ brew ln --overwrite ffmpeg@2.8
Linking /usr/local/Cellar/ffmpeg@2.8/2.8.22... 408 symlinks created.

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/ffmpeg@2.8/bin:$PATH"' >> ~/.zshrc

こうすることで古(ふる)いバージョンを使用(しよう)できます。

$ ffmpeg -version
ffmpeg version 2.8.22 Copyright (c) 2000-2023 the FFmpeg developers

参考(さんこう)

Homebrew Documentation #link