2

Ruby 1.9.3 と Mountain Lion で Ruby on Rails bundle install を実行できません。MySql2 gem はインストールされません。Mac OS X Lion に Ruby on Rails を約 10 回インストールしたので、手順はよく知っていますが、MySQL gem をインストールできません。これは私が得るエラーです。前もって感謝します。

    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

            /Users/username/.rvm/rubies/ruby-1.9.3-p327/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/username/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby.h:32:
    /Users/username/.rvm/rubies/ruby-1.9.3-p327/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/username/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/x86_64-darwin12.2.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/username/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby.h:32:
    /Users/username/.rvm/rubies/ruby-1.9.3-p327/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/username/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/x86_64-darwin12.2.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/username/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby.h:32:
    In file included from /Users/username/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby/ruby.h:1382:
    In file included from /Users/username/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby/intern.h:34:
    /Users/username/.rvm/rubies/ruby-1.9.3-p327/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/username/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/x86_64-darwin12.2.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/username/.rvm/gems/ruby-1.9.3-p327/gems/mysql2-0.3.11 for inspection.
    Results logged to /Users/username/.rvm/gems/ruby-1.9.3-p327/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
    An error occurred while installing mysql2 (0.3.11), and Bundler cannot continue.
    Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.

bundle install --path mysql と bundle install --system を試しましたが、どちらも機能しませんでした

4

3 に答える 3

2

この男は同じ問題を抱えていました: mysql2 gem OS X Mountain Lion をインストールできません

mysql の brew バージョンを使用していますか?

于 2012-11-30T09:51:06.657 に答える
1

rvm を使用していて、おそらく rvm の外部に mysql2 を追加した場合は、次の手順を試してください。

宝石「mysql2」

または Rails2.x の場合:

gem 'mysql2', '~> 0.2.11'

それから:

    $ cd RAILS_ROOT $ gem uninstall mysql2

    Select gem to uninstall:
     1. mysql2-0.2.11
     2. mysql2-0.3.6
     3. All versions
    > 3 # select "All versions" 
$ rvm gemset install mysql2
 $ bundle install

これで、レールが適切に起動するはずです。

于 2012-11-30T09:06:58.470 に答える