Rails on Mac OS X Snow Leopard: mysql2.bundle dlsym - Symbol not found (LoadError)
- Platform: Mac OS X (macosx) 10.6.6
- Ruby: 1.9.2
- Rails: 3.0.3
- Using RVM
This is the error I am getting:
$ rails s
/Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle: dlsym(0x13782a0, Init_mysql2): symbol not found - /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle (LoadError)
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.7/lib/mysql2.rb:8
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.13/lib/bundler/runtime.rb:68:in `require'
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.13/lib/bundler/runtime.rb:68:in `require'
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.13/lib/bundler/runtime.rb:66:in `each'
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.13/lib/bundler/runtime.rb:66:in `require'
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.13/lib/bundler/runtime.rb:55:in `each'
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.13/lib/bundler/runtime.rb:55:in `require'
from /Use开发者_如何学运维rs/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.13/lib/bundler.rb:120:in `require'
from /Users/nicolas/git/hits/config/application.rb:7
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.6/lib/rails/commands.rb:28:in `require'
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.6/lib/rails/commands.rb:28
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.6/lib/rails/commands.rb:27:in `tap'
from /Users/nicolas/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.6/lib/rails/commands.rb:27
from script/rails:6:in `require'
from script/rails:6
This a very persistent error. Here is some more info, that may help resolve it:
- I have upgraded from Leopard to Snow Leopard in the past.
- I have tried bundle install.
- I have tried erasing ~/.rvm and re-installing RVM
- I have tried: env ARCHFLAGS="-arch x86_64" gem install mysql2 -v 0.2.7
- I tried installing the latest mysql (mysql-5.5.12-osx10.6-x86_64.dmg) on top of whatever mysql was there on my system before
Here is some more info about my system:
$ echo $DYLD_LIBRARY_PATH
/usr/local/mysql/lib:
$ file ~/.rvm/rubies/default/bin/ruby
/Users/nicolas/.rvm/rubies/default/bin/ruby: Mach-O 64-bit executable x86_64
$ file /usr/local/mysql/lib/libmysqlclient.18.dylib
/usr/local/mysql/lib/libmysqlclient.18.dylib: Mach-O 64-bit dynamically linked shared library x86_64
$ rvm list
rvm rubies
=> ruby-1.9.2-p180 [ x86_64 ]
$ which ruby
/opt/local/bin/ruby
$ file /opt/local/bin/ruby
/opt/local/bin/ruby: Mach-O executable i386
which ruby
says that you're using not the RVM supplied ruby. After installing RVM and a ruby, you have to tell RVM to use it:
rvm use --default 1.9.2
If you haven't installed ruby on RVM yet then you have to install it before using:
rvm install 1.9.2
After that you will probably need to install rails again, as your current version is probably installed with the system ruby and not RVM.
精彩评论