乘客错误“库未加载”

从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 

安装的Ruby实际上是1.9.2,但无论出于何种原因,gem都在这条“1.9.1”路径中……

它可能与我使用mysql2 gem而不是mysql的事实有关吗?

或者,它可能与第二行“ 未加载库 ”有什么关系,看起来它可能正在尝试加载错误的libmysqlclient.16.dylib ? 由于路径/usr/local/mysql指向未运行的mysql版本。 正在运行的mysql版本位于/usr/bin/我试着改变这个,但我不知道怎么做!?!

Ruby 1.9.2的公告说(原文如此)

此版本为“librariry兼容版本”。 Ruby 1.9.2几乎兼容1.9.1,因此该库安装在1.9.1版本中。

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


您的mysql2 gem实例是针对/usr/local/mysql/lib/libmysqlclient.16.dylib库构建的。 出于这样或那样的原因,您的系统上当前没有该库在该路径名上可用(MySQL已删除/移动/升级?)。


您可能需要重建mysql2 gem并将其指向MySQL安装中的mysql_config (或mysql_config5 )(在/usr/bin ?中):

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