2010-09-07 3 views
13

J'ai la version ruby ​​ruby ​​1.9.2p0 (2010-08-18) [i386-mingw32] installé dans Windows7. Quand j'ai essayé d'installer mysql gem, il montre Failed to build gem native extension erreur, pourquoi est-ce? ma version mysql est 5.1.36 (WampServer)Ruby gem mysql2 erreur d'installation

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 vous avez encore des problèmes (je l'ai fait) gem install mysql2 -v 0.2.6 –

Répondre

6

Comme cela continue à apparaître sur google comme l'un des meilleurs résultats, je tiens à souligner que ces réponses datent de presque 2 ans. Voici une réponse plus mise à jour: How to use "mysql2" gem in Rails 3 application on Windows 7?


Selon le développeur, il est déjà un bogue signalé pour lui et il travaille à se séparer mysql2 sur Windows. A partir de maintenant - c'est encore dans les travaux. Utilisez l'ancien pilote mysql pour l'instant - ou utilisez sqlite pour le développement local.

Ceci est de la discussion de Google Groupes

Blockquote Hey Erwann, Il y a un billet sur la question mysql2 Tracker pour le soutien Win32 déjà à http://github.com/brianmario/mysql2/issues#issue/8. Vous pouvez suivre pour le progrès; Je fais de mon mieux pour faire en sorte que les choses marchent bien pour les . Tenir fermement! :)

-1

clé: la ligne qui dit Vous devez d'abord installer les outils de développement. ref: devkit

+0

je l'ai déjà installé les outils de développement! –

+0

collez vos journaux de sortie et assurez-vous que les autres gemmes installent bien (comme la gemme "rdiscount"). Ma conjecture est que vous vouliez le mysql gem? – rogerdpack

-1

utilisation

gem install mysql 

pour les fenêtres, jusqu'à ce mysql2 y arriver.

2

cela fonctionne, c:>installer bijou mysql2 - « --with-mysql-lib = "C: \ ram Files Prog \ MySQL \ MySQL Connector C 6.0.2 \ lib \ opt" - avec-mysql-include = "C: \ progra m Files \ MySQL \ MySQL Connector C 6.0.2 \ include" »

améliorer temporairement PATH pour inclure DevKit ...

construction des extensions natives. Cela peut prendre un certain temps ...

installé avec succès mysql2-0.3.6

1 gemme installé

Installation de la documentation ri pour mysql2-0.3.6 ...

classe Enclosing/module 'mMysql2' pour le client de classe inconnue

Installation de la documentation RDoc pour mysql2- 0.3.6 ...

classe englobante/module 'mMysql2' pour le client de classe inconnue

Note:

I. S'il n'y a pas lib et include dans votre mysql puis installer connecteur mysql c

II. Tout d'abord installer DevKit alors seulement vous pouvez installer le plugin mysql2 dans les fenêtres https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

34

Si vous rencontrez ce même problème sous Linux, fondamentalement, vous avez juste besoin d'installer quelques bibliothèques d'abord. Cela a fonctionné pour moi.

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

> gem install mysql 

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

+1

c'était exactement ce dont j'avais besoin sur Ubuntu. Merci. – emilebaizel

+0

Cela a fonctionné pour moi dans Ubuntu 12.04! –

+0

Toute idée ce qui doit être fait pour un mac pour le même numéro –

0

Sous Cygwin, je devais être sûr d'installer non seulement libmysqlclient18, mais aussi libmysqlclient-devel. Alors "gem install mysql2" s'est bien passé.

Il y a aussi, bien sûr, un paquet ruby-mysql2 dans Cygwin.

0

Vous pouvez

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