0

バンドル インストールでのインストールに失敗した後、mysql2 gem をインストールしようとしています。私が走るとき

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

次のエラーが表示されます。

ネイティブ拡張機能の構築。これには時間がかかる場合があります... エラー: mysql2 のインストール中にエラーが発生しました: エラー: gem ネイティブ拡張のビルドに失敗しました。

    /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/bin/ruby extconf.rb --with-mysql-config=/usr/local/mysql/bin/mysql_config

rb_thread_blocking_region() のチェック... はい rb_wait_for_single_fd() のチェック... はい mysql.h のチェック... はい errmsg.h のチェック... はい mysqld_error.h のチェック... はい Makefile の作成

make compiling client.c client.c:1 からインクルードされたファイル内: ./mysql2_ext.h:8 からインクルードされたファイル内: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include からインクルードされたファイル内/ruby-1.9.1/ruby.h:32: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby/ruby.h:105:37: エラー: 'ruby_check_sizeof_long' が負のサイズの配列として宣言されています typedef char ruby​​_check_sizeof_long[SIZEOF_LONG == sizeof(long) ? 1 : -1]; client.c:1 からインクルードされたファイル./mysql2_ext.h:8: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby.h:32 からインクルードされたファイル内: /Users からインクルードされたファイル内/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby/ruby.h:24: /Users/jcollyer/.rvm/rubies/ruby-1.9.

SIZEOF_LONG 8 を定義する

                ^ In file included from client.c:1: In file included from ./mysql2_ext.h:8: In file included from

/Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby.h:32: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/ include/ruby-1.9.1/ruby/ruby.h:109:38: エラー: 'ruby_check_sizeof_voidp' が負のサイズの配列として宣言されました typedef char ruby​​_check_sizeof_voidp[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ クライアントからインクルードされたファイル内.c:1: ファイル内./mysql2_ext.h:8 からインクルード: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby.h:32 からインクルードされるファイル内: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby/ruby.h:24: /Users/jcollyer/.rvm/rubies/ruby-1.9.3- p327/include/ruby-1.9.1/x86_64-darwin11.4.2/ruby/config.h:28:22: 注: インスタンス化元:

SIZEOF_VOIDP 8 を定義する

                 ^ In file included from client.c:1: In file included from ./mysql2_ext.h:8: In file included from

/Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby.h:32: /Users/jcollyer/.rvm/rubies/ruby-1.9 からインクルードされたファイル内。 3-p327/include/ruby-1.9.1/ruby/ruby.h:1382: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ からインクルードされたファイル内ruby/intern.h:34: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby/st.h:67:45: エラー: 'st_check_for_sizeof_st_index_t' が宣言されました負のサイズの配列として typedef char st_check_for_sizeof_st_index_t[SIZEOF_VOIDP == (int)sizeof(st_index_t) ? 1 : -1]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ファイル内client.c:1 からインクルード: ./mysql2_ext.h:8 からインクルードされるファイル: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ からインクルードされるファイルruby.h:32:

SIZEOF_VOIDP 8 を定義する

                 ^ 3 errors generated. make: *** [client.o] Error 1

Gem ファイルは、検査のために /Users/jcollyer/.rvm/gems/ruby-1.9.3-p327/gems/mysql2-0.3.11 にインストールされたままになります。結果は /Users/jcollyer/.rvm/gems/ruby-1.9.3-p327/gems/mysql2-0.3.11/ext/mysql2/gem_make.out に記録されます

$どのルビ

/Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/bin/ruby

$ どこで mysql

/usr/local/bin/mysql

私は何が欠けていますか?

4

2 に答える 2

1

アプリケーションに mysql2 gem を使用する予定がある場合libmysqlclient-devは、その前にパッケージをインストールする必要があります。詳細:
http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/

于 2013-01-08T07:34:32.190 に答える
0

これが役立つことを願って試してみてください

cd /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7

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

これが機能しない場合は、 libmysqlclient15-devをインストールします。

「ネイティブ拡張機能」をビルドできない場合は常に、lib または lib-dev が不足していることを意味します。通常、次のことを行う必要があります。

sudo apt-get install 
lib-???-dev

または sudo apt-get install build_essential

'sudo apt-get install libmysqlclient15-dev'
于 2013-01-08T06:27:53.277 に答える