Homebrew Caskでインストールしたアプリをダウングレードする
プライベートでは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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date: Tue Jun 4 12:07:00 2019 +0900
Update slack from 3.4.0 to 3.4.2 (#64345)
commit 905cdea9e21f50d6d417152b3a66583be885b308
Author: Randall <[email protected]>
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
でインストールが可能です。
Author And Source
この問題について(Homebrew Caskでインストールしたアプリをダウングレードする), 我々は、より多くの情報をここで見つけました https://qiita.com/toranokopg/items/9c90e1d0710915e42ae9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .