我无法使用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并且都没有工作
答案 0 :(得分:2)
这家伙有同样的问题:Unable to install mysql2 gem OS X Mountain Lion
您使用的是brew版本的mysql吗?
答案 1 :(得分:1)
如果您正在使用rvm,并且可能在rvm之外添加了mysql2,请尝试以下步骤:确认您的Gemfile说:
gem'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
现在rails应该正常启动。
答案 2 :(得分:1)
1)首先从终端安装自制软件: ruby -e“$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”
2)安装mysql:“brew install mysql” 3)安装mtsql2:“gem install mysql2”
它应该有用。