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
似乎有点脆弱且不可维护。有更好的解决方案吗?
任何见解将不胜感激。
谢谢,
伊森