🖥
Homebrew で複数パッケージのバージョンを切り替える方法
$ brew link
& $ brew unlink
で切り替え
既に複数バージョンのパッケージをインストール済みの場合は、以下コマンドでだいたいうまくいくはず。
1回の切り替えで unlink
と link
にどちらも同じパッケージバージョンを指定するのがミソっぽい。
最新版への切り替え例
$ brew unlink [パッケージ名] && brew link --force --overwrite [パッケージ名]
コマンドの具体例:
$ brew unlink ansible && brew link --force --overwrite ansible
過去バージョンへの切り替え例
$ brew unlink [パッケージ名]@[バージョン番号] && brew link --force --overwrite [パッケージ名]@[バージョン番号]
コマンドの具体例:
$ brew unlink ansible@2.0 && brew link --force --overwrite ansible@2.0
複数バージョンのパッケージをインストールする
まだ複数バージョンをインストールしていない場合は、以下のような手順で実行する。
まずはインストール可能パッケージの確認
まずは brew search [キーワード]
で利用可能パッケージ・バージョンを探す。
例
$ brew search ansible
==> Formulae
ansible ansible-lint ansible@2.0
ansible-cmdb ansible@1.9 terraform-provisioner-ansible
- ansible 最新版
- ansible 2.0系
- ansible 1.9系
が使えそう。
- この例だと、あまり細かくパッケージのバージョンが分かれているわけではないのが分かる。
- ansibleというキーワードに引っかかって、ansible本体でないものも紛れているのが分かる。
複数のバージョンをインストール
最新版
$ brew install ansible
初回インストールしたバージョンはすぐに使えるようになる。
$ ansible --version
ansible 2.6.1
過去バージョン
$ brew install ansible@2.0
過去バージョンをインストールしても、まだパッケージのバージョンは変わっていない。
$ ansible --version
ansible 2.6.1
link する
複数バージョンのパッケージをインストールしている場合は link コマンドでバージョンを切り替える。
最新版を unlink
して、過去バージョンを link
してみる。
brew unlink ansible && brew link --force ansible@2.0
バージョンが切り替わったのが分かる。
$ ansible --version
ansible 2.0.2.0
その後の切り替え
よく分からないところで怒られたりするので、冒頭に書いたとおり、以下のようなコマンドで切り替える。
$ brew unlink ansible && brew link --force --overwrite ansible
$ brew unlink ansible@2.0 && brew link --force --overwrite ansible@2.0
感想
いまだに brew link
の仕組みがよく分からない。
環境
- Homebrew 1.6.15-7-g7c18efe
- Homebrew/homebrew-core (git revision 86e1c; last commit 2018-07-14)
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2018-07-14
Discussion