プライベートではWindowsを使っていますが、仕事ではもっぱらMacがメインです。アプリのインストールには利便性を考えて、macOS用パッケージマネージャのHomebrewと、その拡張機能であるHomebrew Caskを使っています。先日Caskでインストールしたアプリを更新したところトラブルが発生し、ダウングレードする機会がありました。割とあるあるなケースだと思うので、忘れないように手順を書き残します。
前提条件
- Homebrew+Caskが使える環境
- ダウングレードするアプリをSlackと仮定する
- Git すこし わかる
戻したいバージョンのコミットを探す
ターミナルでCaskのディレクトリまで移動します。
$ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks
Gitのコマンドでログを表示します。
$ git log slack.rb
commit bb21222c6baea64c58e296ac325888f17f2850d4
Author: James Chevalier <james@openbay.com>
Date: Thu Aug 1 12:14:25 2019 -0400
Update slack from 4.0.0 to 4.0.1 (#67023)
commit 07039780b1748514316029607c0b83a4e51e6e7d
Author: HASHIMOTO Masayuki <gh@mahori.mail-box.ne.jp>
Date: Wed Jul 17 08:11:25 2019 +0900
Update slack from 3.4.2 to 4.0.0 (#66330)
commit db14404b644a5a3923f793c79faa3056554e0908
Author: HASHIMOTO Masayuki <mahori@users.noreply.github.com>
Date: Tue Jun 4 12:07:00 2019 +0900
Update slack from 3.4.0 to 3.4.2 (#64345)
commit 905cdea9e21f50d6d417152b3a66583be885b308
Author: Randall <17261190+ran-dall@users.noreply.github.com>
Date: Fri Apr 19 03:10:51 2019 -0700
Update slack from 3.3.8 to 3.4.0 (#62186)
:
ずらずらとコミットのログが表示されます。最新版は現時点で4.0.1
です。これを1つ前の4.0.0
に戻す場合、『Update slack from 3.4.2 to 4.0.0 (#66330)』とコメントされてるコミットのハッシュ値07039780b1748514316029607c0b83a4e51e6e7d
を控えておきます。
アプリをアンインストールする
$ brew cask uninstall slack
アンインストールが完了したら、念のためキャッシュを削除しておきます。
$ brew cleanup -s
控えたハッシュ値を指定して再インストール
控えたハッシュ値を指定して、アプリを再インストールします。
$ brew cask install https://raw.githubusercontent.com/caskroom/homebrew-cask/07039780b1748514316029607c0b83a4e51e6e7d/Casks/slack.rb
補足(追記)
どのような仕組みでダウングレードしてるのか軽く補足します。Homebrew Caskは、Rubyで記述されたアプリの定義ファイルを元に、インストールを実行しています。控えたハッシュ値ですが、これは指定したバージョンの定義ファイルを参照するために使います。先ほどbrew cask install
で指定したURLにアクセすると、GitHubにアップロードされたSlackのver. 4.0.0
の定義ファイルが表示されるかと思います。URLを直接指定しなくても、Gitのコマンドでコミットを遡れば、同じようにbrew cask install slack
でインストールが可能です。