6

私は RoR を初めて使用し、Mysql2 -v '0.3.11' をインストールしようとしています。OS X Mountain Lion、rails 3.2.6、ruby 1.9.3 を使用しています。

以下は私が得るエラーです。私はいたるところを見ましたが、何も見つかりませんでした。

$gem install mysql2 -v '0.3.11'
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

    /Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/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 client.c:1:
In file included from ./mysql2_ext.h:8:
In file included from /Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby.h:32:
/Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/ruby.h:105:37:     error: 'ruby_check_sizeof_long' declared as an array with a negative size
typedef char ruby_check_sizeof_long[SIZEOF_LONG == sizeof(long) ? 1 : -1];
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin12.0.0/ruby/config.h:24:21: note: expanded from macro 'SIZEOF_LONG'
#define SIZEOF_LONG 8
                ^
In file included from client.c:1:
In file included from ./mysql2_ext.h:8:
In file included from /Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby.h:32:
/Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/ruby.h:109:38: error: 'ruby_check_sizeof_voidp' declared as an array with a negative size
typedef char ruby_check_sizeof_voidp[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin12.0.0/ruby/config.h:28:22: note: expanded from macro 'SIZEOF_VOIDP'
#define SIZEOF_VOIDP 8
                 ^
In file included from client.c:1:
In file included from ./mysql2_ext.h:8:
In file included from /Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby.h:32:
In file included from /Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/ruby.h:1377:
In file included from /Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/intern.h:34:
/Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/st.h:67:45: error: 'st_check_for_sizeof_st_index_t' declared as an array with a negative size
typedef char st_check_for_sizeof_st_index_t[SIZEOF_VOIDP == (int)sizeof(st_index_t) ? 1 : -1];
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/curiosity/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin12.0.0/ruby/config.h:28:22: note: expanded from macro 'SIZEOF_VOIDP'
#define SIZEOF_VOIDP 8
                 ^
3 errors generated.
make: *** [client.o] Error 1


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

ご協力いただきありがとうございます。

4

3 に答える 3

27

10.8 に付属する Ruby の代わりに RVM を使用しています。良い。今、10.8 に付属している MySQL の使用を停止します。

Homebrewをインストールして更新します。今すぐ実行

brew install mysql

プロジェクトで を使用して、 gem/Gemfileをインストールします。mysql2追加

gem "mysql2"

あなたに/Gemfile。次に、実行して Bundler でアプリケーションを更新します

bundle install

パッケージ マネージャー(Homebrew と Bundler)を使用します。

これにより、発生している問題が修正されるはずです。

于 2012-08-14T03:50:34.477 に答える
0

Deefourが言ったように、RVM を使用する必要がありました。答えは彼に送られます。私は彼の答えについてコメントできませんでした。+1

しかしrvm exec bundle install、私にエラーを与えました:

rvm do bundle installが削除された場合は、代わりにrvm 1.9.2,1.9.3 do bundle installorを使用してください。rvm all do bundle install

私は使用 sudo rvm all do bundle install しましたが、それ以降はすべて問題なく動作しました。

于 2012-12-27T02:54:37.630 に答える
0

私もmac10.10で同じタイプのエラーが発生し、以下のコマンドを使用しました。

  1. 以下を使用して Homebrew をインストールおよびアップグレードします。

    醸造インストールmysql

  2. 次を使用してインストール Mysql gem ファイルを実行します。

    gem install mysql2 -v '0.3.11'

  3. バンドルのインストールを実行

于 2015-10-16T20:06:02.003 に答える