MacOSX での Rails 2.2 環境を構築して MySQL のドライバでハマる
またお前か!
こないだは Windows 環境でハマったりしたのだけど、今度は Mac でハマりました。
基本的な手順はここ(Windows に Ruby on Rails 2.2 + MySQL 5.x 環境を構築する手順とハマり所 - @sugamasao.blog.title # => ”コードで世界を変えたい”)と同じですが、MySQL のドライバをインストールする部分だけ、以下のようにする必要がある(はず)。
mysql ドライバのインストール
普通に gem install mysql ではコンパイルが通らないので、 mysql-config のパスを通してあげる。
sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
その後、 rake db:create すると、こんなエラーになる。
sugamasao% rake db:create (in /private/tmp/test/sample3) !!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. rake aborted! dlopen(/opt/local/lib/ruby/site_ruby/1.8/i686-darwin9/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib Referenced from: /opt/local/lib/ruby/site_ruby/1.8/i686-darwin9/mysql.bundle Reason: image not found - /opt/local/lib/ruby/site_ruby/1.8/i686-darwin9/mysql.bundle (See full trace by running task with --trace)
よくわからんが、/usr/local/mysql/lib 配下にはちゃんとライブラリがあるのだけど、参照しているのが /usr/local/mysql/lib/mysql 配下なので、ちゃんと読めていないようだ。
下記のサイトを参考にして、シンボリックリンクを張ってごまかす事にする*1。
cd /usr/local/mysql/lib sudo mkdir ./mysql cd ./mysql sudo ln -s /usr/local/mysql/lib/* .
これでうまく行くはず
ここまででうまくできると思うのだけど、おれ自身は試行錯誤していて、以下のような処理を行っている。
もし上記だけでうまく行かなければ、下記も試してみてください。
cd /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7 sudo ruby extconf.rb --with-mysql-config=/usr/local/mysql/bin/mysql_config sudo make sudo make install
*1:なんかもっとまともなやり方がありそうな気もするけど・・・