乘客错误“库未加载”
从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