11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Homebrew で複数パッケージのバージョンを切り替える方法

Last updated at Posted at 2018-07-14

$ brew link & $ brew unlink で切り替え

既に複数バージョンのパッケージをインストール済みの場合は、以下コマンドでだいたいうまくいくはず。

1回の切り替えで unlinklink にどちらも同じパッケージバージョンを指定するのがミソっぽい。

最新版への切り替え例

$ 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オープンチャットもご利用ください。

Twitter

11
11
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
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?