🍺

【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 を例に、特定のコミット時点のバージョンをインストールする手順を紹介します。

  1. 既存バージョンの削除

まずは現在インストールされているバージョンを削除します。

brew uninstall --cask claude-code
  1. 目的の Cask ファイルを入手する

https://github.com/Homebrew/homebrew-cask から目的のアプリを探し、History から対象バージョンの Raw リンクを取得してダウンロードします。

# 例として特定のコミットハッシュを指定してダウンロード
curl -O https://raw.githubusercontent.com/Homebrew/homebrew-cask/7f37777bac4be22b99fe155f2face162e8b187eb/Casks/c/claude-code.rb
  1. 一時的なローカル Tap を作成する

これが現在の仕様における回避ポイントです。自分専用のローカル Tap を作成します。

brew tap-new local/temp
  1. Cask ファイルを Tap 内に配置する

作成した Tap のディレクトリ構造内に、ダウンロードしたファイルを移動します。

# Tapの場所を確認してディレクトリを作成(c/ はアプリ名の頭文字)
mkdir -p $(brew --repository local/temp)/Casks/c/

# ダウンロードしたファイルを移動
mv ./claude-code.rb $(brew --repository local/temp)/Casks/c/
  1. Tap 経由でインストール

ファイルパスではなく、作成した Tap 名を指定してインストールを実行します。

brew install --cask local/temp/claude-code

これで、無事に指定したバージョンのインストールが完了します。

まとめ

Homebrew のセキュリティ強化により、単体の .rb ファイルを直接インストールすることはできなくなりました。

手間は少し増えましたが、brew tap-new でローカルリポジトリを作る方法を覚えておくと、公式から消えてしまった古いバージョンの管理や、自作スクリプトの管理にも応用が効くので便利です。

おまけ:後片付け

インストールが終わり、一時的な Tap が不要になった場合は以下のコマンドで削除できます。

brew untap local/temp

Discussion