Linux 2.6.18-92.el5, Ruby 1.8.7, Rails 2.2.2, gem mysql 2.7pilote MySQL Ruby ne pas trouver les bibliothèques nécessaires
J'ai installé la distribution binaire MySQL sous/usr/local, puis installé la gemme mysql comme ceci:
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
Quand je lance irb> require 'mysql'
j'obtiens l'erreur ci-dessous:
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
Après quelques recherches sur Google, je trouve que je pouvais utiliser ldconfig
pour con figure mysql.so être disponible pour l'ensemble du système. Une fois que j'ajouté "/ usr/local/mysql /lib" /etc/ld.so.conf et a couru ldconfig, il a bien fonctionné:
irb(main):002:0> require 'rubygems'
=> true
irb(main):003:0> require 'mysql'
=> true
OK, alors je suis à travailler. Mais ma question est, pourquoi avais-je cette erreur? Vous aviez l'habitude de juste gem install mysql
et cela fonctionnerait. Quelqu'un d'autre a-t-il rencontré la même erreur? En utilisant ldconfig
semble un peu fragile et non maintenable. Y a-t-il une meilleure solution?
Toute idée serait grandement appréciée.
Merci,
Ethan