Rubyをコンパイルし、rubygems、mysql2、Railsをインストールしましたが、これは非常にうまく機能しました。しかし、Railsを起動しようとすると、次のエラーメッセージが表示されます。サーバ:
/usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2.rb:7:in `require ':dlopen(/ usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle、9):ライブラリがロードされていません:libmysqlclient.18.dylib(LoadError) 参照元:/usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 理由:画像が見つかりません-/ usr/local/Ruby /lib/Ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle /usr/local/Ruby/lib/Ruby/gems/1.9.1/gemsから/mysql2-0.2.6/lib/mysql2.rb:7:in `' from /usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/bundler-1.0.10/lib /bundler/runtime.rb:68:in `require ' from/usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime。 rb:68:in `block(2 level)in require ' from /usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime .rb:66:in `each ' from /usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:66: `ブロックイン/usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in`each'[.____から ' が必要です。] from /usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `require ' from/usr/users/filzo/Documents/Rails /の/local/Ruby/lib/Ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler.rb:120:in`require' blog/config/application.rb:7:in `' from/usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/railties-3.0.5/lib/Rails/commands。 rb:28:in `require ' from /usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/railties-3.0.5/lib/Rails/commands.rb:28:in `block in ' from /usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/railties-3.0.5/lib/Rails/commands.rb:27:in` tap' from /usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/railties-3.0.5/lib/Rails/commands.rb:27:in `' from script/Rails:6:in `require ' from script/Rails:6:in`'
私はいくつかの可能な解決策を試しました(例: http://railsforum.com/viewtopic.php?pid=23125#23125 with libmysqlclient.18.dylib);しかし、私には何もうまくいきませんでした。あなたが私を助けてくれることを願っています。
編集:これは私にとって問題を修正したようです:
Sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/Ruby/lib/Ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
とにかく;それはMySQLまたはRubyコードのバグですか?
簡単で最良の方法の1つは、コマンドでソフトリンクを作成することです-
Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
http://rorguide.blogspot.com/2011/07/getting-error-library-not-loaded.html
これは既知の(そして修正されていない!) MySQLバイナリディストリビューションのバグ のようです。
実行中install_name_tool
mysql2.bundleファイルで機能します。ファイルを削除して再構築すると、正方形のファイルに戻ります。また、この修正をリンクする他のすべてのものに適用する必要があります。より良い解決策は、ライブラリ自体の問題を修正することです。
$ Sudo install_name_tool -id \
/usr/local/mysql/lib/libmysqlclient.18.dylib \
/usr/local/mysql-5.5.12-osx10.6-x86_64/lib/libmysqlclient.18.dylib
Mysql2 gemの削除と再構築:
$ gem uninstall mysql2
$ gem install mysql2
...ライブラリへの変更を取得し、環境変数をいじくり回すことなく、すべてが正しく機能するはずです。
Mac OS XでRVM(優れた選択肢)を使用している場合-これが最終的に私のために機能した魔法のコマンドです。
Sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Users/*USERNAME*/.rvm/gems/Ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
現在の設定に従って、構文の[〜#〜] username [〜#〜]を適切に置き換えます。また、mysql gemのバージョンが異なる場合は、それも変更してください。
Install_nameツールのより良い代替手段は、mysqllibのパスをDYLD_LIBRARY_PATH環境変数に追加することです。/etc/profile:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib
または、Oracle Instant Clientもインストールしているので、次のようにします。
export Oracle_HOME="/usr/local/Oracle/instantclient_10_2"
export DYLD_LIBRARY_PATH=$Oracle_HOME
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/mysql/lib
Rakeが正しいMySQLクライアントライブラリを見つけられるように、このシンボリックリンクを作成してみてください。
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
これが役立つかどうかはわかりませんが、OS X 10.7.1Lionを使用しています。私の場合、ターミナルウィンドウを開き、/ Library/Ruby/Gems/1.8/gems/mysql2-0.3.7に移動すると、RVMが吠え、新しい.rvmrcファイルまたは変更された.rvmrcファイルが見つかったと言いました。そのファイルの内容は次のとおりです。
rvm use 1.9.2@mysql2 --create
この.rvmcファイルを信頼するかどうかを尋ねられました。はいと言ったところ、次のように返されました。
Using /Users/dan/.rvm/gems/Ruby-1.9.2-p290 with gemset mysql2
それが終わったら、次のコマンドを実行しました。
Sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Library/Ruby/Gems/1.8/gems/mysql2-0.3.7/lib/mysql2/mysql2.bundle
一度やったら、行く準備ができていました。お役に立てれば!