読者です 読者をやめる 読者になる 読者になる

Programming log - Shindo200

イベント参加記録とプログラミング系の雑記

brew link を実行したら * has multiple installed versions と出たときの対応

私は ruby のバージョン管理に rbenv を利用しています。rbenv は ruby-build というプラグインを使って ruby のインストールを行います。このプラグインに現在インストール可能な ruby のバージョンとソースの取得先が記述されているようで、rbenv で最新の ruby をインストールするときは、先に最新の ruby-build をインストールしておかないといけません。

手元に ruby2.0.0-p353 をインストールしていないマシンがありましたので、インストールしようと思い、最新の ruby-build のインストールしました。

$ brew install --HEAD ruby-build
$ brew link ruby-build
Error: ruby-build has multiple installed versions

すると、「複数のバージョンの ruby-build が入っていますよ!」というエラーが表示されました。まずはインストールされている ruby-build のバージョンを一覧表示してみます。

$ brew ls --versions | grep ruby-build
ruby-build 20130104 20130224 HEAD

複数のバージョンがインストールされていますが、今必要なのは HEAD だけですので、不要なバージョンは削除します。(余談ですが、ruby-build ってバージョン名として日付を使っているのですね。)

$ brew cleanup
$ brew ls --versions | grep ruby-build
ruby-build HEAD

不要なバージョンを削除できましたので、シンボリックリンクを張り直します。

$ brew link ruby-build
Linking /usr/local/Cellar/ruby-build/HEAD... 4 symlinks created

最後に rbenv から ruby2.0.0-p353 がインストールできることを確認してから、インストールします。

$ rbenv install -l |grep 2.0.0-p353
  2.0.0-p353
$ CC=`which gcc` RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl` --with-readline-dir=`brew --prefix readline`" rbenv install 2.0.0-p353
$ ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin13.0.0]

無事、インストールできました。

ruby の新バージョンが出るたびにやっていることなのですが、ブログ記事にしたことがなく、毎回忘れて調べ直すのも面倒でしたので、メモとして残しておきます。本当は上記のコマンドをまとめて実行してくれるシェルスクリプトを作っておいた方が楽できるのでしょうけどね…