2012-04-19 2 views
1

Mac OS X Lion環境にRVMとともにRubyとRailsをインストールしました。RVMでインストールされたmysql2 gemはRailsで正常に動作しますが、スタンドアロンのRubyスクリプトではうまく動作しません。

私は、mysql2 gemで正しく動作させるようにしました(mysqlインストールではなくMAMPライブラリを使用します)。だからすべてがうまくいった...

私はスタンドアロンのルビースクリプト(Railsのコンテキスト外)を書き込もうとしていました。そして今、私はmysql2 gemを動作させることができません。

スクリプト内から、またはRubyのコマンドライン(IRB)から、

require "mysql2" 

命令は、次のエラーにつながる:

1.9.2p290 :001 > require "mysql2" 
dyld: lazy symbol binding failed: Symbol not found: _mysql_get_client_info 
    Referenced from: /Users/mick/.rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle 
    Expected in: flat namespace 

dyld: Symbol not found: _mysql_get_client_info 
    Referenced from: /Users/mick/.rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle 
    Expected in: flat namespace 

私はいくつかのものを試してみた:

  • export DYLD_LIBRARY_PATH=/Applications/MAMP/Library/lib/mysql/:$DYLD_LIBRARY_PATH

  • 何も働いていないsudo ln -s /Applications/MAMP/Library/lib/mysql/libmysqlclient.16.dylib /usr/lib/libmysqlclient.16.dylib

を使用。私はすぐに泣くだろうと思う...

答えて

11

奇妙なことに、これは今日、ただの同僚と起こった。ここで私はそれを修正するために何をしたのですか:

gem uninstall mysql2 
brew install mysql 
gem install mysql2 

それはそれと同じくらい簡単でした。それもあなたのために働くことを願っています!

+2

多くの場合、これは32ビットと64ビットのライブラリのバインディングが原因です。メソッドはそこにありますが、間違ったアーキテクチャです。再インストールは、これらの不規則性を解決する最も簡単な方法です。 – tadman

+0

ありがとうございます、問題はあなたのトリックで修正されました。私はHomebrew(http://mxcl.github.com/homebrew/)をインストールする必要がありました。私はすでにMacportsとFinkをインストールしていましたが、私はそれをするのが嫌でしたが、私のスタンドアロンのRubyの問題は修正しました。 Railsアプリ。ホームブリューは、私の次のクリーンなMacのインストールで私の唯一のUNIXパッケージマネージャーかもしれません! –

+0

私のために働いた。ありがとうございました! –

関連する問題