Ruby:mysql2-Gem无法正常工作(Mac OS X Snow Leopard,Ruby 1.9.2) [英] Ruby: mysql2-Gem not working (Mac OS X Snow Leopard, Ruby 1.9.2)

查看:83
本文介绍了Ruby:mysql2-Gem无法正常工作(Mac OS X Snow Leopard,Ruby 1.9.2)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚编译了ruby,并安装了rubygems,mysql2和rails,这些工作非常好。但是,当我尝试启动rails服务器时,我收到以下错误消息:

$ us $ local / gems / 1.9.1 / gems / mysql2-0.2.6 / lib / mysql2.rb:7:在'require'中:dlopen(/usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2- 0.2.6 / lib / mysql2 / mysql2.bundle,9):未加载库:libmysqlclient.18.dylib(LoadError)
引用自:/usr/local/ruby/lib/ruby/gems/1.9.1 /gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
原因:未找到图像 - /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6 /lib/mysql2/mysql2.bundle
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2.rb:7:in`'$来自/usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in的b $ b需要从/ usr'require'
/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in`block(2 levels)in require'
from / usr /local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in`each'
fro m /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in`block in require'
from / usr /本地/ ruby​​ / lib / ruby​​ / gems / 1.9.1 / gems / bundler-1.0.10 / lib / bundler / runtime.rb:55:在`each'
从/ usr / local / ruby​​ / lib / ruby / gems / 1.9.1 / gems / bundler-1.0.10 / lib / bundler / runtime.rb:55:在`require'
从/usr/local/ruby/lib/ruby/gems/1.9。 1 / gems / bundler-1.0.10 / lib / bundler.rb:120:在'require'
from /Users/filzo/Documents/rails/blog/config/application.rb:7:in`'$ /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:28:in中的$ b来自/ usr的`require'
/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:28:in`在
中从/ usr / local / ruby​​ / lib / ruby​​ / gems / 1.9.1 / gems / railties-3.0.5 / lib / rails / commands.rb:27:在`tap'中$ b $ from / usr / local / ruby​​ / lib / ruby​​ / gems / 1.9.1 / gems / railties-3.0.5 / lib / rails / commands.rb:27:在''
从脚本/导轨:6:在'require'
从脚本/导轨:6 :在`中



我尝试了几种可能的解决方案(例如这: http://railsforum.com/viewtopic.php?pid=23125#23125 with libmysqlclient.18.dylib);但没有为我工作。我希望你能帮助我。



编辑:
这似乎解决了我的问题:

  sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/ruby/lib/ruby/gems/1.9。 1 / gems / mysql2-0.2.6 / lib / mysql2 / mysql2.bundle 

无论如何;是它在MySQL或ruby代码中的错误?

解决方案

简单和最好的方法之一是创建一个软按命令链接 -

  sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib / usr / lib /libmysqlclient.18.dylib 

http://rorguide.blogspot.com/2011/07/getting-error-library-not-loaded.html


I just compiled ruby and installes rubygems, mysql2 and rails, which worked quite well. But I get the following error message, whenever I try to start the rails server:

/usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2.rb:7:in `require': dlopen(/usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
  Referenced from: /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
  Reason: image not found - /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2.rb:7:in `'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `each'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `block in require'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `each'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `require'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler.rb:120:in `require'
  from /Users/filzo/Documents/rails/blog/config/application.rb:7:in `'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:28:in `require'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:28:in `block in '
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:27:in `tap'
  from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:27:in `'
  from script/rails:6:in `require'
  from script/rails:6:in `'

I tried several possible solutions (e.g. this: http://railsforum.com/viewtopic.php?pid=23125#23125 with libmysqlclient.18.dylib); but nothing worked for me. I hope you can help me.

EDIT: It seems like this fixed the problem for me:

sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 

Anyway; is it a bug in the MySQL or the ruby-code?

解决方案

One of the simple and best way is to create a soft link by command -

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

http://rorguide.blogspot.com/2011/07/getting-error-library-not-loaded.html

这篇关于Ruby:mysql2-Gem无法正常工作(Mac OS X Snow Leopard,Ruby 1.9.2)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆