2010-09-07 209 views
13

我在Ruby7中安裝了Ruby版本的ruby 1.9.2p0(2010-08-18)[i386-mingw32]。 和寶石1.3.7Ruby gem mysql2安裝錯誤

當我試圖安裝MySQL寶石,它顯示Failed to build gem native extension錯誤,爲什麼這是?我的mysql版本是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

如果你仍然有問題(我一樣)創業板安裝mysql2 -v 0.2.6 – 2011-04-06 05:51:13

回答

6

由於這個問題不斷出現在谷歌上,因此我應該指出這個答案大約是在2年前。下面是更多,更新的答案:How to use "mysql2" gem in Rails 3 application on Windows 7?


據開發商有一個已經爲它報告的bug,他正在爲Windows系統離別mysql2。截至目前 - 它仍在工作中。現在使用舊的mysql驅動程序 - 或者使用sqlite進行本地開發。

這是從Google網上論壇討論

塊引用 嘿艾萬, 有一個在mysql2問題跟蹤器支持Win32已經 在http://github.com/brianmario/mysql2/issues#issue/8票。你可以按照 它的進步;我正在盡我所能,讓你們的工作順利進行,爲 。堅持! :)

-1

key:表示你必須先安裝開發工具。 ref:devkit

+0

我已經安裝了開發工具! – 2010-09-08 06:02:18

+0

粘貼您的輸出日誌,並確保其他寶石安裝好(如「rdiscount」寶石)。我的猜測是你想要的MySQL寶石? – rogerdpack 2010-09-08 13:58:42

-1

使用

gem install mysql 

窗戶,直到mysql2得到它的權利。

2

它的工作原理, C:>創業板安裝mysql2 - 「--with-mysql的-LIB = 「C:\ PROG RAM文件\ MySQL的\ MySQL的插頭C 6.0.2 \ LIB \選擇」 - 與MySQL的 - 包括= 「C:\ PROGRA M檔\ MySQL的\ MySQL的插頭C 6.0.2 \包括」」

暫時提升路徑包括...的devkit

大廈原生擴展。這可能需要一段時間...

成功安裝了mysql2-0.3。6

1寶石安裝

安裝用於mysql2-0.3.6 RI文檔...

封閉類/模塊 'mMysql2' 的未知

爲mysql2-安裝RDoc文檔類的客戶端0.3.6 ...

封閉類/模塊 'mMysql2' 類客戶端不知道

注:

一,如果沒有lib和在你的mysql include目錄然後安裝mysql連接器C

II。首先安裝的devkit那麼只有你可以在窗口 https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

34

如果您在Linux中的這個同樣的問題,安裝mysql2插件,基本上你只需要先安裝一些庫。這對我有效。

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

> gem install mysql 

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

+1

這正是我需要在Ubuntu上。謝謝。 – emilebaizel 2012-04-12 17:29:05

+0

這對於我在Ubuntu 12.04中工作! – 2012-07-06 11:35:59

+0

任何想法什麼需要不要爲mac同一問題 – 2012-07-30 03:44:32

0

在Cygwin的,我必須確保安裝不只是libmysqlclient18,還的libmysqlclient-devel的。然後「gem install mysql2」進行得很好。

Cygwin中還有一個ruby-mysql2軟件包。

0

您可以嘗試

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