2010-11-23 82 views
1

从Passenger(使用Apache)中获取此错误。不知道这意味着什么......乘客错误“库未加载”

dlopen(/path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): 
Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib 
Referenced from: /path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 
Reason: image not found - /path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 

安装红宝石实际上是1.9.2,但宝石都因为种种原因,这个“1.9.1”路径...

难道有东西用事实我用mysql2宝石而不是mysql

或者,也许可以将它有事情做与二号线“库未加载”它看起来像它可能会试图加载错误libmysqlclient.16.dylib?由于路径/usr/local/mysql指向未运行的mysql版本。运行的mysql的版本是/usr/bin/我试图改变这一点,但我不知道如何!?!

回答

3

announcement for Ruby 1.9.2说:(原文如此)

这个版本是 “librariry兼容版本”。 Ruby 1.9.2几乎兼容1.9.1,因此该库安装在1.9.1目录中。

这就是为什么红宝石目录被命名为“1.9.1”;这是正常的。


你的mysql2宝石的情况下建对/usr/local/mysql/lib/libmysqlclient.16.dylib库。由于某种原因,该库目前不能在您的系统上使用该路径名(MySQL已移除/移动/升级?)。


你可能需要重建mysql2宝石,并将其指向mysql_config(或mysql_config5)从你的MySQL安装(在/usr/bin?):

gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config 
+0

谢谢!出于好奇,我正在学习,我会在哪里阅读这样的构建选项?我已经看过** mysql2 ** docs 但找不到任何提及。在Rails等隐藏的“幕后”......可能令人沮丧。 – Meltemi 2010-11-23 18:31:11