简体   繁体   中英

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 /Users/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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM