views:

284

answers:

3

Windowsxp. Ruby192. Rails installed. Mysql installed. When I try to run gem install mysql2 (or bundle install) I get errors:

C:\ruby\cred2>gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

C:/Ruby192/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby192/bin/ruby
C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to genera
te an executable file. (RuntimeError)
You have to install development tools first.
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:435:in `try_link0'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:440:in `try_link'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:552:in `try_func'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:797:in `block in have_func'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postp
one'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
        from C:/Ruby192/lib/ruby/1.9.1/mkmf.rb:796:in `have_func'
        from extconf.rb:9:in `<main>'


Gem files will remain installed in C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.
2.4 for inspection.
Results logged to C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.2.4/ext/mysql2/ge
m_make.out

C:\ruby\cred2>
A: 

I guess that this gem uses C bindings and so has to be compiled. To do that in Windows you'd probably need to have the whole mingw (or possibly cygwin) environment set up. And still, I'm not sure this will help.

You can try to use mysql or ruby-mysql on your Windows machine.

Matt
A: 

if you haven't installed DevKit yet, this is the way to go.

I did it yesterday it worked perfectly (i have a Win XP box too).

the installation process is relatively straightforward (but well documented)

http://www.rubyinstaller.org/add-ons/devkit/

Pierre
DevKit enabled me to install `curb`, bot not `mysql2`. Still get an error: `gem install mysql2 --platform=ruby``Temporarily enhancing PATH to include DevKit...``Building native extensions. This could take a while...`ERROR: Error installing mysql2: ERROR: Failed to build gem native extension.C:/Ruby/Ruby192/bin/ruby.exe extconf.rbchecking for rb_thread_blocking_region()... yeschecking for main() in -llibmysql... no extconf.rb failed Could not create Makefile due to some reason[...].`
duddle
+1  A: 

Just for the record: The problem should be solved!

The mysql2 gem v.0.2.6 is out, having win32 support.

gem install mysql2 worked without problems now (DevKit installed).

See: http://github.com/brianmario/mysql2/issues/issue/8#issue/8/comment/479748

duddle
Confirmed. No devkit required. Thanks.
Captain Claptrap