2010-12-29 13 views
3

Snow Leopardにアップグレードされました。多くのことを混乱させた後、私はMySQLを稼働させて稼働させました。Snow Leopardにアップグレードした後のMySQLのgemの問題

今私はRails環境を動作させようとしています。私はのRails 3.0.3とRuby 1.8.7

を使用していたプロジェクトのために私は次のコマンドを使用してMySQL2宝石をインストールしました:

sudo gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 

私はレールのサーバを起動すると、私は次の取得しますエラー:

/Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): no suitable image found. Did find: (LoadError) 
/Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: mach-o, but wrong architecture - /Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 
from /Users/lee/.rvm/gems/ruby-1.8.7-head/gems/mysql2-0.2.6/lib/mysql2.rb:7 

誰もが似たような問題を抱え、これを解決する方法を知っていますか? 私は開発者よりもデザイナーですので、これは私の強みではありません。任意のポインタを気に入ってください。

答えて

0

私はSnow Leopardにアップグレードした後に、いくつかの他の宝石と昨日、このような何かを通り抜けました。 SLが64ビットバージョンを探していたときに古い32ビットライブラリを使用しようとしていたので、私は非常に似たエラーを出しました。まず、64ビットバージョンのMySQLをインストールしたことを確認してください。

その後、私を得たもの:宝石のアンインストールmysql2

は結局のところ、私は宝石が二回インストールとRailsは、私は別の場所にインストールされ、正しいものを持っていたにも関わらず、間違った(32ビット)バージョンをロードしようとしていたました。あなたがMySQLの宝石をインストールするときにも

、あなたはインストールするsudoの宝石の前に

export ARCHFLAGS="-arch i386 -arch x86_64" 

を試してみたいことがありmysql2

0

行うためのカップルの事があります:あなたは「didnの場合

は、 RVMの制御下でRubyを再コンパイルすると、そのようにしたいと思うでしょう。 Snow Leopard以前は、i386 32bitアプリとしてコンパイルしていました。その後、x86 64ビットにする必要があります。したがって、RVMを使用してrvm uninstallをRuby 1.8.7で実行した後、rvm installを再度実行してください。あなたはrvm listを実行していることを実行する必要があるかどうかを確認することができます。

rvm list 

rvm rubies 

    ruby-1.8.7-p330 [ x86_64 ] 
=> ruby-1.9.2-p136 [ x86_64 ] 

ルビー、1.8.7または1.9+のいずれか、Snow Leopardのために正しく構成されている場合はx86_64になります。

その後はすべてのあなたの宝石を再構築するgem pristineを実行することができます。そのプロセスの一環として、x86_64としても再コンパイルするネイティブドライバを再構築します。

はまた、比較的現在のあなたのRVMを維持することをお勧めします。最新のREVは、今夜のように、v1.1.13ですので、あなたが古い場合、あなたはそれをキャッチアップするためにrvm get headをしたいかもしれません。物事を診断するために

便利なコマンドは以下のとおりです。gem envrvm info

0

私は最近、レールコンソールまたはレールサーバを起動するときに、レールが「間違ったアーキテクチャは適切な画像が見つかりません」というエラーを投げかけていたのと同じ問題が発生しました。

associatd .dylibファイル上でfileを実行すると宝石は、一般に適用可能なx86_64バージョンまたはそれを含む汎用を返します。最終的に、私は実行していたRubyの実際のバージョンに戻しました。/usr/bin/ruby​​実行ファイル自体はi386としか互換性がありませんでした。新しいxcodeとosx 10.7が私に64ビットのルビーを持ってきたと仮定したので、これは本当に衝撃的でした。

RVMを使用して、私はもう1つのruby(1.8.7)のインスタンスをインストールしました。これを行うには、readlineの新しいインスタンス(homebrewを使用した:brew install readline)をインストールし、rvm install 1.8.7 --with-readline-dir=/usr/local/Cellar/readline/6.2.1/でrvmをインストールする必要がありました。これを行った後

、そして私の新しいルビーのインスタンス(rvm use 1.8.7)を使用するように切り替え、すべての私の宝石がなくなっていたgem install bundler続く、gem install rake(RVMは何とかインストールしてください。私のデフォルトのGEM_PATHを変更)した後、bundle installは私を持って実行しています。

かいつまんで、あなたのルビーの実行ファイルは、あなたのルビー/レールパッケージが組み込まれたされている命令セットのバージョンと一致することを確認してください

このブログ記事は、同様に非常に役立ちました:。 http://www.markhneedham.com/blog/2010/07/08/installing-ruby-1-9-2-with-rvm-on-snow-leopard/

関連する問題