brewで複数バージョンあるモジュールの切替

2014-11-09
homebrew

忘れちゃうのでメモ brewでインストールしたkeg-onlyなモジュールは、brew link してシンボリックリンクを作成することで 利用するのだけど、普通にbrew linkすると、最新バージョンがリンクされる。

複数バージョンを切り替えて試したい時は、以下の手順で行う。 readlineのバージョン切替を例としてやってみる。

まずは、現状確認

1
2
3
4
5
6
7
8
9
10
11
12
13
$ brew info readline
readline: stable 6.3.6 (bottled)
http://tiswww.case.edu/php/chet/readline/rltop.html

This formula is keg-only.
OS X provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.

/usr/local/Cellar/readline/6.2.2 (30 files, 1.5M)
/usr/local/Cellar/readline/6.3.6 (40 files, 2.1M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/readline.rb

6.3.6側にアスタリスクがついており、6.3.6がリンクされていることが分かる。 以下は、6.3.6を6.2.2に切り替える手順  

一度、モジュールをunlinkする。

1
$ brew unlink readline

確認するとアスタが消えて、readlineがリンクされてない状態に戻る。

1
2
3
$ brew info readline
/usr/local/Cellar/readline/6.2.2 (30 files, 1.5M)
/usr/local/Cellar/readline/6.3.6 (40 files, 2.1M)

2. バージョンをswitch

1
2
3
4
$ brew switch readline 6.2.2
Cleaning /usr/local/Cellar/readline/6.2.2
Cleaning /usr/local/Cellar/readline/6.3.6
Opt link created for /usr/local/Cellar/readline/6.2.2
1
2
$ brew link --force readline
Linking /usr/local/Cellar/readline/6.2.2... 12 symlinks created

確認すると、6.2.2側にアスタがついており切替成功

1
2
3
$ brew info readline
/usr/local/Cellar/readline/6.2.2 (30 files, 1.5M) *
/usr/local/Cellar/readline/6.3.6 (40 files, 2.1M)

homebrewは超便利。