7

インターンのコンピューターで mysql2 gem のインストールに問題が発生しています。彼のコンピューターを OS X 10.6 から 10.8 (Mountain Lion) にアップグレードしたところです。homebrew と 64 ビット DMG インストーラーを使用して mysql をインストールしようとしました。また、開発ツールへのシンボリックリンクを試みました(ここで指摘されているように:マウンテンライオンのアップグレード後に一部の宝石をインストールできません)。Xcode (4.4) がインストールされ、コマンド ライン ツールがインストールされています。コマンドラインツールをインストールした後、再起動を試みました。

これは からの彼の PATH 宣言です~/.bashrc:

PATH=/usr/local/bin:$PATH:$HOME/.rvm/bin:/usr/local/mysql/bin # Add RVM to PATH for scripting

シンボリックリンク:

Diego-Blantons-MacBook-Pro-3:~ lmrunner07$ sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2
Password:

gem をインストールしてみてください:

Diego-Blantons-MacBook-Pro-3:~ lmrunner07$ gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

        /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
creating Makefile

make
compiling client.c
In file included from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby.h:32,
                 from ./mysql2_ext.h:8,
                 from client.c:1:
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:105: error: size of array ‘ruby_check_sizeof_long’ is negative
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:109: error: size of array ‘ruby_check_sizeof_voidp’ is negative
In file included from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/intern.h:34,
                 from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:1382,
                 from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby.h:32,
                 from ./mysql2_ext.h:8,
                 from client.c:1:
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/st.h:67: error: size of array ‘st_check_for_sizeof_st_index_t’ is negative
client.c: In function ‘rb_raise_mysql2_error’:
client.c:98: warning: ISO C90 forbids mixed declarations and code
client.c: In function ‘rb_mysql_client_socket’:
client.c:590: warning: ISO C90 forbids mixed declarations and code
make: *** [client.o] Error 1


Gem files will remain installed in /Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11 for inspection.
Results logged to /Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/ext/mysql2/gem_make.out

自作でインストールされたmysqlと起動エージェントを削除しました。またrm -rf、gem ディレクトリ (Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11)

4

6 に答える 6

5

私はこれを解決しました:

  1. homebrew のインストールruby <(curl -fsSk https://raw.github.com/mxcl/homebrew/go) (使用方法については、Web サイトを参照してください。リンク)
  2. これらの指示に従ってくださいhttp://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion
  3. homebrew で mysql を再インストールしbrew install mysqlます。(これらの指示に従ってmysqlをインストールしようとしましたhttp://erictarn.com/post/28269453881/how-i-installed-mysql-rvm-ruby-and-rails-on-mountainですが、後で問題に遭遇したのでお勧めしますmysql を homebrew で再インストールします。)
  4. 自分のプロジェクト (mysql2 を含む) の rvm と rails と gem を再インストールする

注: ビルドしようとしたときに、ライブラリの問題がLibrary not loaded: libmysqlclient.18.dylibありました。これは、実行することで修正されましたsudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib( 「ライブラリがロードされていません: libmysqlclient.16.dylib エラー」を参照してください。同じ問題です。)

于 2012-08-05T04:30:52.573 に答える
0

やってみました:

gem install mysql2 --with-mysql-config=/usr/lib64/mysql/mysql_config

/usr/lib64/mysql/mysql_configをmysql設定の場所に置き換えます。

于 2012-07-27T18:29:06.667 に答える
0

残念ながら、インストール プロセスは非常に細分化されており、全体的な手順を見ずに問題を特定することは困難です。

インストール手順について詳しく知ることなく、安定した Rails Mountain Lion 開発ボックスにたどり着くまでのいくつかのメモを以下に示します (繰り返しますが、これがより具体的でないことをお詫びします)。

  1. RVM、Ruby の手順: moncefbelyamani.com

    注:ここには確かに、からの提案を介して実行した手順があり、以前のセットアップでは実行したことはbrew doctorありません。'rvm requirements'

    次のようなメモ:

    • Xcode 4.3+ は ruby​​-1.9.3-p125+ のみを使用します (Xcode 4.1 にダウングレードするためにコンパイルの問題があったかどうかを教えてくれます)
    • 使用するbrew install autoconf automake apple-gcc42
    • 使用するbrew tap homebrew/dupes
    • その他...
  2. Rails 固有の手順: railsapps.github.com

  3. mysql の場合 (インストールの mysql 部分にスキップします: coolestguyplanettech.com

注:オプションの手順を実行しました: ...コマンドへのフルパスを入力せずにmysqlコマンドを使用するには、シェルパスにmysqlディレクトリを追加する必要があります...ビルド中に役立つことがわかったのでなど(一部のスクリプトは...を想定しています)

ここでは、デフォルトのデータベースが mysql である新しい Rails アプリを単純に作成しようとしました (バンドラーを介して mysql2 をダウンさせました)。そこから - 私は簡単な足場でテストアプリをやろうとしました - そして mysql2 barfed.

そこから、「ライブラリがロードされていません: libmysqlclient.16.dylib」というエラーが発生し、ここに記載されているように: stackoverflow awesomeness .profile に次の行を追加しました:export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

MY PATH には明示的にレールとルビーが含まれていました: /Users/gabriel/.rvm/gems/ruby-1.9.3-p194@rails327/bin:/Users/gabriel/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/gabriel/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/gabriel/.rvm/bin:/usr/local/mysql/bin:/usr/local/bin:/usr/bin:/usr/sbin:/opt/X11/bin:

これらのリソースがさらに役立つことを願っています。

于 2012-08-02T22:18:22.857 に答える
0

implode-ing rvm と Homebrew の ruby​​ をインストールすることで、これを修正できました。次に、mysql2 gem が正常にインストールされました。

これは、私が rvm で遭遇した最初の問題ではありません。二度と利用しないと思います。

于 2013-06-27T18:51:43.080 に答える
0

次のコマンドを実行してコンパイルできました: PATH=/bin:/usr/bin:/opt/mysql5_64/bin gem install mysql2 Where mysql5_64 mysql の最新の 64 ビット バージョンをダウンロードし、そこで解凍しました。既にインストールされている mysql データベースはそのままにしておきます。

于 2013-01-29T04:16:22.210 に答える
0

OSX Yosemiteでこれを正常に動作させました:

sudo port install mysql56
gem install mysql2 -- --with-mysql-config=/opt/local/lib/mysql56/bin/mysql_config
于 2015-06-16T05:30:10.023 に答える