मेरे पास रेल 3.1-आरसी 4, MySQL 5.5.15 (बस अपग्रेड किया गया), और मैक ओएस एक्स शेर है। मेरी समस्या यह निकली कि mysql_api.bundle फ़ाइल सही libmysqlclient.18.dylib फ़ाइल से लिंक की गई थी, लेकिन उसे लाइब्रेरी नहीं मिली:
otool -L ~/.rvm/gems/ruby-1.9.2-p180/gems/mysql-2.8.1/lib/mysql_api.bundle
/Users/rowland/.rvm/gems/ruby-1.9.2-p180/gems/mysql-2.8.1/lib/mysql_api.bundle:
/Users/rowland/.rvm/rubies/ruby-1.9.2-p180/lib/libruby.1.9.1.dylib (compatibility version 1.9.1, current version 1.9.1)
libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
रनटाइम पर पुस्तकालय नहीं मिला। इसे ठीक करने का मेरा पहला प्रयास LC_RPATH कमांड जोड़ना था, लेकिन वह पर्याप्त नहीं था (शायद इसलिए कि यह सूची के अंत में था)। इसके बजाय मैंने सीधे पुस्तकालय लिंक को बदल दिया:
install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/.rvm/gems/ruby-1.9.2-p180\@rails-3.1/gems/mysql-2.8.1/lib/mysql_api.bundle
अब otool मुझे दिखाता है:
otool -L ~/.rvm/gems/ruby-1.9.2-p180\@rails-3.1/gems/mysql-2.8.1/lib/mysql_api.bundle
/Users/rowland/.rvm/gems/[email protected]/gems/mysql-2.8.1/lib/mysql_api.bundle:
/Users/rowland/.rvm/rubies/ruby-1.9.2-p180/lib/libruby.1.9.1.dylib (compatibility version 1.9.1, current version 1.9.1)
/usr/local/mysql/lib/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
और यह सब फिर से खुश है। हालांकि यह केवल मैक ओएस एक्स पर काम करता है।