2010-09-07 18 views
13

Tengo la Ruby version ruby ​​1.9.2p0 (2010-08-18) [i386-mingw32] instalada en Windows7. y la gem vesion 1.3.7Ruby gem mysql2 install error

Cuando traté de instalar la gema mysql, está mostrando Failed to build gem native extension error, ¿por qué es esto? mi versión mysql es 5.1.36 (WampServer)

E:\RubyApps\test_app2>gem install mysql2 
Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
     ERROR: Failed to build gem native extension. 

E:/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=E:/Ruby192/bin/ruby 
E:/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 E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:435:in `try_link0' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:440:in `try_link' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:552:in `try_func' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:797:in `block in have_func' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postp 
one' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:276:in `postpone' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for' 
     from E:/Ruby192/lib/ruby/1.9.1/mkmf.rb:796:in `have_func' 
     from extconf.rb:9:in `<main>' 


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

E:\RubyApps\test_app2> 
+6

si todavía tiene problemas (lo hice) gem install mysql2 -v 0.2.6 –

Respuesta

6

Dado que esto sigue apareciendo en google como uno de los mejores resultados, debo señalar que esta respuesta es de hace casi 2 años. Aquí es una respuesta más actualizada: How to use "mysql2" gem in Rails 3 application on Windows 7?


Según el desarrollador ya no es un un informe de error para él y él está trabajando en despedida mysql2 a Windows. A partir de ahora, todavía está en proceso. Utilice el controlador mysql anterior por ahora - o use sqlite para el desarrollo local.

Esto es de la discusión googlegroups

cita en bloque Hey Erwann, Hay un billete en el seguimiento de incidencias mysql2 de apoyo Win32 ya en http://github.com/brianmario/mysql2/issues#issue/8. Puede seguir para el progreso; Estoy haciendo todo lo posible para que las cosas funcionen sin problemas para chicos. ¡Aguanta! :)

-1

clave: la línea que dice Primero tiene que instalar las herramientas de desarrollo. ref: devkit

+0

ya he instalado las herramientas de desarrollo! –

+0

pegue sus registros de salida y asegúrese de que otras gemas se instalen correctamente (como la gema "rdiscount"). ¿Supongo que querías la gema mysql? – rogerdpack

-1

uso

gem install mysql 

para las ventanas, hasta mysql2 hacer las cosas bien.

2

funciona, c:>joya instalar mysql2 - '--with-mysql-lib = "C: \ Prog ram Files \ MySQL \ MySQL Connector 6.0.2 C \ lib \ opt" - con-MySQL-include = "C: \ Progra m Files \ MySQL \ MySQL Connector 6.0.2 C \ include"'

mejorar temporalmente PATH para incluir DevKit ...

extensiones nativas de construcción. Esto podría llevar un tiempo ...

Se instaló con éxito mysql2-0.3.6

1 joya instalado

Instalación de la documentación para el ri ... mysql2-0.3.6

Encerrando entre la clase/módulo 'mMysql2' para el cliente de clase no se conoce

Instalación de la documentación para RDoc mysql2- 0.3.6 ...

clase envolvente/módulo 'mMysql2' para el cliente de clase no se conoce

Nota:

I. Si no hay lib y include en su mysql entonces instalar conector de MySQL c

II. Primero instale DevKit entonces sólo usted puede instalar el plugin mysql2 en ventanas https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

34

Si tiene este mismo problema en Linux, básicamente, sólo tiene que instalar algunas bibliotecas primera. Esto funcionó para mí.

> sudo apt-get install libmysql-ruby libmysqlclient-dev 

> gem install mysql 

fuente: http://heatware.net/ruby-rails/solved-installing-mysql-gem-extconf-rb-failed-error/

+1

esto era exactamente lo que necesitaba en ubuntu. Gracias. – emilebaizel

+0

¡Esto funcionó para mí en ubuntu 12.04! –

+0

Any Idea lo que se debe hacer para un mac para el mismo problema –

0

bajo Cygwin, yo tenía que estar seguro de instalar no sólo libmysqlclient18, sino también libmysqlclient-devel. Entonces "gem install mysql2" fue bien.

También hay, por supuesto, un paquete ruby-mysql2 en Cygwin.

0

Usted puede intentar

gem install mysql2 -v '0.0.00' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include 
Cuestiones relacionadas