Linux 2.6.18-92.el5, ruby 1.8.7, Rails 2.2.2, mysql gem 2.7
Я установил двоичный дистрибутив MySQL в / usr / local, затем установил гем mysql так:
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
После некоторого поиска в Google я обнаружил, что могу использовать 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
кажется хрупким и недостижимым. Есть ли лучшее решение?
Любое понимание будет с благодарностью.
Спасибо
Этан