MAC OSX Mavericks のrvmですこしはまる。
ブログなんて2年ぶりだわん。
MAC OSX の Mavericks で ruby 1.9.3 を rvm 上で使おうとしたらはまったのでメモ。
ふつうにやってruby 1.9.3のインストールとかまではできたのだけど、
ネイティブビルドの必要な mysql2 gem を入れようとしたらこけてしまう。
$ gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions with: '--with-mysql-config=/usr/local/mysql/bin/mysql_config'
This could take a while...
ERROR:Error installing mysql2:
ERROR: Failed to build gem native extension.
/Users/nyaago/.rvm/rubies/ruby-1.9.3-p429/bin/ruby extconf.rb --with-mysql-config=/usr/local/mysql/bin/mysql_config
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing.please check your installation of mysql and try again.
-----
*** extconf.rb failed ***
それで、経過が出力されている mkmf.log というファイルをみると、
"/usr/local/Cellar/gcc46/4.6.4/bin/gcc-4.6 -E -I/Users/nyaago/.rvm/rubies/ruby-1.9.3-p429/include/ruby-1.9.1/x86_64-darwin13.0.0 -I/Users/nyaago/.rvm/rubies/ruby-1.9.3-p429/include/ruby-1.9.1/ruby/backward -I/Users/nyaago/.rvm/rubies/ruby-1.9.3-p429/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/local/opt/libyaml/include -I/usr/local/opt/readline/include -I/usr/local/opt/libksba/include -I/usr/local/opt/openssl/include -I/usr/local/mysql/include -g -Os -arch x86_64 -fno-common -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fno-common -pipe conftest.c -o conftest.i"
x86_64 がないといかいわれている。コンパイラさんが '-arch x86_64 ' というのを理解していないということのようですね。
なんか、ruby 1.9.3 をインストールしようとしたところで、gcc46 というのが必要ということでHomebrewでそれをインストールして使っているようなんだけど、その gcc46 は '-arch 'という指定を受け付けないということのよう。
ということで、OSの標準コンパイラが使用されるようにしてみようということになり、
OS標準のフロントコンパイラ(clang )を使ってruby 1.9.3をリインストールしてから mysql2 の gem をインストールしてみた。
$ rvm reinstall 1.9.3 --with-gcc=clang
......................
$ rvm 1.9.3
$rvm 1.9.3
nyaago@mumichan: 541 $gem install mysql2
Building native extensions. This could take a while...
Successfully installed mysql2-0.3.13
Installing ri documentation for mysql2-0.3.13
1 gem installed
これで、多分OKかな。まだ動作はさせてないけど。