gpt4 book ai didi

ruby-on-rails - Ruby 的 MySQL 驱动程序找不到所需的库

转载 作者:数据小太阳 更新时间:2023-10-29 08:56:03 26 4
gpt4 key购买 nike

Linux 2.6.18-92.el5、ruby 1.8.7、Rails 2.2.2、mysql gem 2.7

我在/usr/local 下安装了 MySQL 二进制发行版,然后像这样安装了 mysql gem:

gem install mysql --no-rdoc --no-ri \
-- --with-mysql-include=/usr/local/mysql/include \
--with-mysql-lib=/usr/local/mysql/lib \
--with-mysql-config=/usr/local/mysql/bin/mysql_config

当我运行 irb> require 'mysql' 时,我得到如下所示的错误:

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'mysql'
LoadError: libmysqlclient.so.16: cannot open shared object file:
No such file or directory -
/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.so
from /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.so
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/
custom_require.rb:36:in `require' from (irb):2

经过一番谷歌搜索后,我发现我可以使用 ldconfig 来配置mysql.so 对整个系统可用。一旦我添加了“/usr/local/mysql/lib"到/etc/ld.so.conf 并运行 ldconfig,它工作正常:

irb(main):002:0> require 'rubygems'
=> true
irb(main):003:0> require 'mysql'
=> true

好的,我让它工作了。但我的问题是,为什么我会收到那个错误?您过去只需 gem install mysql 就可以了。还有其他人遇到过同样的错误吗?使用 ldconfig 似乎有点脆弱且难以维护。有更好的解决方案吗?

如有任何见解,我们将不胜感激。

谢谢,

伊桑

最佳答案

我也遇到了问题(在 Mac OS X 上),并且因为 gem install mysql 不像以前那么简单而感到沮丧。

短视的答案是 mysql gem 需要构建 native 扩展,为此,它需要一些关于 MySQL 库的路径信息(特定于您的系统)。获取该信息的最可靠方法是您提供该信息。

更大的答案是这是 gem 系统中的设计错误。当几乎所有其他 gem 使用 gem install foo 安装时,系统和 gem 提交者需要为用户提供某种重要异常情况的说明 - 即使它只是反馈错误消息告诉你您必须提供更多信息才能安装此 gem,以及这些信息是什么。

谷歌搜索最终让我找到了答案,但也让我看到了更多其他人被一个简单的过程蒙蔽了双眼的例子,这个简单的过程在没有警告的情况下变得复杂。

关于ruby-on-rails - Ruby 的 MySQL 驱动程序找不到所需的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/342371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com