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"

 

gcc-4.6: error: x86_64: No such file or directory

 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かな。まだ動作はさせてないけど。