LoginSignup
9
4

More than 3 years have passed since last update.

Homebrewで過去バージョンをインストールしたいぞ

Posted at

背景

OpenAPIを使ったプロジェクトでopenapi-generatorコマンドでコードを自動生成したところ、僕が変更を加えた量より遥かに多い変更がされてしまった。
.openapi-generator/VERSION4.0.2になっている。
一方手元で

$ openapi-generator version

と打つと

4.1.1

が返ってくる。
要するにマスタとローカルでopenapi-generatorのバージョンが違うのが原因らしいので、openapi4.0.2をインストールしようということになった。

確認

openapi-generatorはHomebrewでbrew install openapi-generatorと打って取得したもの。

Homebrewに他のバージョンがあるか確認するにはbrew info openapi-generatorと打つ。

ここで例えば以下のように目標のバージョンがあった場合、

/usr/local/Cellar/openapi-generator/4.0.2 (4 files, 18.5MB)
  Built from source on 2019-08-31 at 15:50:00
/usr/local/Cellar/openapi-generator/4.1.1 (4 files, 18.8MB) *
  Built from source on 2019-08-31 at 15:35:33

brew switch openapi-generator 4.0.2などと打てばバージョンをスイッチできる。

取得

たぶん上の方法で無いことの方が多いと思うので、そのときはFormulaのバージョンを遡ってインストールする。

Formulaのディレクトリに移動

$ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula

ログを確認

$ git log openapi-generator.rb

ログはj/kで上下移動、qで終了など。
これで目標のcommitを探すのだけど、最近のcommitしか残ってない場合がある。そのときは

$ git fetch --depth 10000

みたいにdepthを指定してfetchすると昔のcommitが見れる。

するとこんな感じで目標のバージョンのcommit番号が分かるはず。

commit 3f66aa275955a9e3c042c48af2462f74cd051f5b
Author: William Cheng <wing328hk@gmail.com>
Date:   Thu Jun 20 14:30:01 2019 +0800

    openapi-generator 4.0.2 (#41145)

分かったら以下の感じで良い感じにする。

$ git checkout 3f66aa275955a9e3c042c48af2462f74cd051f5b openapi-generator.rb
$ brew unlink openapi-generator #一旦今のリンクを外す
$ HOMEBREW_NO_AUTO_UPDATE=1 brew install openapi-generator #自動更新無しにしてインストール

openapi-generator versionで欲しいバージョンになっていることを確認したら、git reset --hardで元に戻しておく。

以降は上のbrew switchを使ってバージョン行き来もできる。

参考リンク

Homebrewで旧バージョンのパッケージをインストールしたい
homebrew の git logを確認して Python 3.6.5のインストールしてみる。

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4