【2025年版】Homebrew Caskで過去バージョンをインストールする方法
Homebrew Caskでインストールしたアプリをダウングレードしたい(過去の特定バージョンを入れたい)時、以前は GitHub の Raw URL やローカルのファイルを直接指定してインストールが可能でしたが、現在はセキュリティ仕様の変更によりエラーが出るようになっています。
この記事では、現在(2025年最新)の仕様に対応した「ローカル Tap を作成する方法」でのダウングレード手順を解説します。
発生するエラー
以前よく使われていた「URL 直接指定」や「ローカルファイル指定」を実行すると、以下のようなエラーが発生します。
URLを直接指定した場合
brew install --cask https://raw.githubusercontent.com/Homebrew/homebrew-cask/7f37777bac4be22b99fe155f2face162e8b187eb/Casks/c/claude-code.rb
Error: Cask 'claude-code' is unavailable: No Cask with this name exists.
ローカルにダウンロードしたファイルを指定した場合
brew install --cask ./claude-code.rb
Error: Homebrew requires casks to be in a tap, rejecting: ./claude-code.rb
「Cask は Tap(リポジトリ)の中に管理されていないとインストールさせない」という制限がかかるようになっています。
解決手順
今回は claude-code を例に、特定のコミット時点のバージョンをインストールする手順を紹介します。
- 既存バージョンの削除
まずは現在インストールされているバージョンを削除します。
brew uninstall --cask claude-code
- 目的の Cask ファイルを入手する
https://github.com/Homebrew/homebrew-cask から目的のアプリを探し、History から対象バージョンの Raw リンクを取得してダウンロードします。
# 例として特定のコミットハッシュを指定してダウンロード
curl -O https://raw.githubusercontent.com/Homebrew/homebrew-cask/7f37777bac4be22b99fe155f2face162e8b187eb/Casks/c/claude-code.rb
- 一時的なローカル Tap を作成する
これが現在の仕様における回避ポイントです。自分専用のローカル Tap を作成します。
brew tap-new local/temp
- Cask ファイルを Tap 内に配置する
作成した Tap のディレクトリ構造内に、ダウンロードしたファイルを移動します。
# Tapの場所を確認してディレクトリを作成(c/ はアプリ名の頭文字)
mkdir -p $(brew --repository local/temp)/Casks/c/
# ダウンロードしたファイルを移動
mv ./claude-code.rb $(brew --repository local/temp)/Casks/c/
- Tap 経由でインストール
ファイルパスではなく、作成した Tap 名を指定してインストールを実行します。
brew install --cask local/temp/claude-code
これで、無事に指定したバージョンのインストールが完了します。
まとめ
Homebrew のセキュリティ強化により、単体の .rb ファイルを直接インストールすることはできなくなりました。
手間は少し増えましたが、brew tap-new でローカルリポジトリを作る方法を覚えておくと、公式から消えてしまった古いバージョンの管理や、自作スクリプトの管理にも応用が効くので便利です。
おまけ:後片付け
インストールが終わり、一時的な Tap が不要になった場合は以下のコマンドで削除できます。
brew untap local/temp
Discussion