6
5

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 5 years have passed since last update.

Macでrbenv install 2.x.xに失敗する

Last updated at Posted at 2014-06-24

この記事は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にエイリアスされているため、大方の人はここではつまづかないであろうと思われますが、念のため。

6
5
2

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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?