简体   繁体   English

Mac OS X Snow Leopard 上的 Rails:mysql2.bundle dlsym - 找不到符号 (LoadError)

[英]Rails on Mac OS X Snow Leopard: mysql2.bundle dlsym - Symbol not found (LoadError)

  • Platform: Mac OS X (macosx) 10.6.6平台:Mac OS X (macosx) 10.6.6
  • Ruby: 1.9.2 Ruby:1.9.2
  • Rails: 3.0.3导轨:3.0.3
  • Using RVM使用 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.我过去从 Leopard 升级到了 Snow Leopard。
  • I have tried bundle install.我试过捆绑安装。
  • I have tried erasing ~/.rvm and re-installing RVM我尝试擦除 ~/.rvm 并重新安装 RVM
  • I have tried: env ARCHFLAGS="-arch x86_64" gem install mysql2 -v 0.2.7我试过: 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我尝试在之前的系统上安装最新的 mysql (mysql-5.5.12-osx10.6-x86_64.dmg)

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. which ruby表示您使用的不是 RVM 提供的 ruby。 After installing RVM and a ruby, you have to tell RVM to use it:安装 RVM 和 ruby 后,您必须告诉 RVM 使用它:

rvm use --default 1.9.2

If you haven't installed ruby on RVM yet then you have to install it before using:如果您尚未在 RVM 上安装 ruby,那么您必须在使用前安装它:

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.之后,您可能需要再次安装 rails,因为您当前的版本可能安装了系统 ruby 而不是 RVM。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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