この記事はHomebrewでopensslとreadlineを管理している人向けです。
環境:
MacBook Pro Retina 15 inch
OSX Mavericks(10.9.3)
readline 6.3.6
openssl 1.0.1h
rbenv 0.4.0
症状
rbenvを使ってRuby 2.1.2(2014/6/24時点での最新版)をインストールしようとすると、以下のようなエラーが出ます。
$ rbenv install 2.1.2
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
BUILD FAILED
Inspect or clean up the working tree at /var/folders/3x/p0tlr56s269_9f7hlqqprk9m0000gn/T/ruby-build.20140624132819.50519
Results logged to /var/folders/3x/p0tlr56s269_9f7hlqqprk9m0000gn/T/ruby-build.20140624132819.50519.log
Last 10 log lines:
compiling ossl_x509name.c
compiling ossl_x509req.c
compiling ossl_x509revoked.c
compiling ossl_x509store.c
installing default openssl libraries
installing default psych libraries
linking shared-object psych.bundle
linking shared-object openssl.bundle
linking shared-object ripper.bundle
make: *** [build-ext] Error 2
こちらの記事では、readlineのバージョンが6.3.3のときに起こると説明されていますが、僕の環境ではreadline 6.3.6であり、既にこのバグは解消されているとのこと。
案の定、
brew switch readline 6.2.4
してインストールを試みましたが、やはり上手くいきませんでした。
原因
Rubyのインストール時にはLLVMベースのコンパイラ(llvm-gcc-4.2 or clang)を使う必要があるようで、僕の環境ではgcc 4.7.3がデフォルトに設定されていました。
そこで、
~/.bash_profile
export CC = clang
もしくは
~/.bash_profile
alias gcc = llvm-gcc-4.2
とすることでインストールできるようになります。
所感
Mavericksのデフォルトではgccはclangにエイリアスされているため、大方の人はここではつまづかないであろうと思われますが、念のため。