jeremy collyer
jeremy collyer

Reputation: 75

mysql2 gem install error

im trying to install mysql2 gem after it failed to install on a bundle install. when i run

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

i get the following error:

Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension.

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

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/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: 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]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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: In file included from /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:24:21: note: instantiated from:

define 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: 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]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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: In file included from /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: note: instantiated from:

define 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: In file included from /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/ruby/ruby.h:1382: In file included from /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: 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]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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: In file included from /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: note: instantiated from:

define SIZEOF_VOIDP 8

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

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

$ which ruby

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

$ where mysql

/usr/local/bin/mysql

what am i missing?

Upvotes: 0

Views: 770

Answers (2)

Ganesh Kunwar
Ganesh Kunwar

Reputation: 2653

If you’re planning on using the mysql2 gem for your application then you’ll want to install the libmysqlclient-dev package before you do that. For more detail:
http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/

Upvotes: 1

Arpit Kulshrestha
Arpit Kulshrestha

Reputation: 66

Try this hope it'll help

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

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

and if this doesn't work then install libmysqlclient15-dev

Whenever you can't build "native extensions", it means there is some lib or lib-dev missing. Generally you'll need to do a

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

or sudo apt-get install build_essential.

'sudo apt-get install libmysqlclient15-dev'

Upvotes: 0

Related Questions