homebrew caskで任意のバージョンのアプリケーションをインストールする・ダウングレードする
起こった問題
いまだにOSX El Capitanを使っているのだが(そしてそれほど「いまだに」とは思っていなかったのだが),
先日CotEditorをなんとなくbrew upgradeしたら,OS10.12.xx以上じゃないと使えません的なメッセージが出た(たぶん3.6.7; どのバージョンからそうなのかは不明).
いよいよこういうロバストそうなプログラムが動作しなくなると環境が古くなってきた感じがする.
ダウングレードしたい
これがcaskでないプログラムだったら,
brew switch hogehoge ver
でいいらしいのだが,
Homebrewで旧バージョンをインストールする方法(brew versionsはもう使えない) - Qiita
caskで同様にやろうとするとうまくいかない.
brew info
でも最新のバージョンしか出てこないし,switchサブコマンドも受け付けない(caskがすでにサブコマンド?)
たとえば
find / -name coteditor* 2>/dev/null
などとやれば,これまでupgradeしてきた.dmgファイルが残っているのは確認できるが,
これを直接はhomebrewが利用できるようにはなっていないということか.
やったこと
見つかった方法はふたつ.
Downgrade an application installed with Brew Cask – Joeri Verdeyen
- Homebrew caskのGitHubプロジェクトページに行く
- "Find file"(もしくはキーボードで "t")でパスのベースネームにカーソルが行くので,formula名を入力する
- *.rbファイル(caskファイル)を選択し,"history"をクリック
- コミット(変更履歴)一覧が出るので,希望のバージョンをクリック
- 当該バージョンのページの"raw"をクリックしてスクリプト自体を表示し,URLをコピー
- brew cask uninstall formula -> brew cask install URL
もう一つの方法は,ローカルの*.rbファイルを直接いじってバージョンを指定してしまうというもの.
https://devforgalaxy.github.io/en/2016/11/05/use-homebrew-cask-to-downgrad-or-install-en.html
しかしこの方法では,バージョンの数字の他にsha256というハッシュ値を指定する必要があるが,
これは結局GitHubの*.rbファイルからとってくるくらいしか方法がわからなかったので,それならその*.rbファイルから直接brew installしたほうが早いという気がする.
編集したらuninstallしてinstallする.
2019/1/18追記
うっかりbrew cask updateしたらまたCotEditorを最新にしてしまったので,同様の方法を試みたが,
なぜか下記のようなエラーが出る.
curl: (22) The requested URL returned error: 416 Error: Cask 'coteditor' is unavailable: Failed to download https://raw.githubusercontent.com/Homebrew/homebrew-cask/2e9a7b52a2c4b60d98e272de7235cd75cf960586/Casks/coteditor.rb. Did you mean “coteditor”?
上のfindの方法で.dmgファイルは見つけることはできるし,brew caskの管理下に置いておくとまた同じことが起こるので,
旧バージョンの.dmgファイルから直接インストールしてしまうことにした.