OSX Yosemite(El Capitan,Sierraも) で古い therubyracer -v 0.10.2 をインストールする

[参考](http://stackoverflow.com/questions/19630154/gem-install-therubyracer-v-0-10-2-on-osx-mavericks-not-installing)

osx のバージョンと v8 はバージョンが合っていないと色々エラーになる。
[参考](http://qiita.com/windhorn/items/394c10dea23d1e829cd1)

しかし古い therubyracer が使いたいので、下記の手順の通り、apple-gcc42 を入れて、v8 を、コンパイルしなおしたら、古いtherubyracer を入れられる。
追記:2016-11-14 El Capitan/Sierrar でも同じ手順でできました。

```
brew tap homebrew/dupes
brew install apple-gcc42
export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2
export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2
export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2
brew uninstall v8
gem uninstall libv8
rbenv rehash
gem install therubyracer -v '0.10.2'
```

[参考](http://stackoverflow.com/questions/19630154/gem-install-therubyracer-v-0-10-2-on-osx-mavericks-not-installing)

### bundle install 時コケるのを直す

```
Installing therubyracer 0.10.2 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /Users/ookubo/.rbenv/versions/2.1.5/bin/ruby extconf.rb
checking for main() in -lobjc... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling rr.cpp
clang: warning: argument unused during compilation: '-rdynamic'
rr.cpp:48:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_array.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_callbacks.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_context.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_date.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_debug.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_exception.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_exception.cpp:10:16: warning: unused variable 'stack' [-Wunused-variable]
  static void* stack[20];
               ^
1 warning generated.
compiling v8_external.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_external.cpp:10:9: warning: unused variable 'references' [-Wunused-variable]
  VALUE references;
        ^
1 warning generated.
compiling v8_function.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_handle.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_locker.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_locker.cpp:45:5: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
v8_locker.cpp:85:5: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
2 warnings generated.
compiling v8_message.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_object.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_object.cpp:77:19: warning: unused variable 'proto' [-Wunused-variable]
    Handle<Value> proto(rr_rb2v8(prototype));
                  ^
1 warning generated.
compiling v8_script.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_string.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_template.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_try_catch.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_value.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_value.cpp:100:9: warning: unused function 'ToInt32' [-Wunused-function]
  VALUE ToInt32(VALUE self) {
        ^
1 warning generated.
compiling v8_weakref.cpp
clang: warning: argument unused during compilation: '-rdynamic'
linking shared-object v8.bundle
clang: error: no such file or directory: '/Users/ookubo/rails_sample/vendor/bundle/ruby/2.1.0/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'
make: *** [v8.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/ookubo/rails_sample/vendor/bundle/ruby/2.1.0/gems/therubyracer-0.10.2 for inspection.
Results logged to /Users/ookubo/rails_sample/vendor/bundle/ruby/2.1.0/extensions/x86_64-darwin-14/2.1.0-static/therubyracer-0.10.2/gem_make.out
```

上記のようなエラーが出るので、
シンボリックリンクが無く bundle でエラーになるので、下記のようにリンクを貼る
$RAILS_ROOT と rbenv のパスは、各自の環境に応じて変更する

#### rbenv を使ってる場合

```
export RAILS_ROOT=自分のRailsルート
ln -s ~/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a $RAILS_ROOT/vendor/bundle/ruby/2.1.0/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
```

#### anyenv 経由で rbenv を使ってる場合

```
export RAILS_ROOT=自分のRailsルート
ln -s ~/.anyenv/envs/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a $RAILS_ROOT/vendor/bundle/ruby/2.1.0/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
```