Ruby gem mysql2 安装错误

13

我在Windows7上安装了Ruby版本ruby 1.9.2p0 (2010-08-18) [i386-mingw32]和gem版本1.3.7。

当我尝试安装mysql gem时,出现了“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 版本为 0.2.6:gem install mysql2 -v 0.2.6。 - That Realty Programmer Guy
9个回答

34

有什么想法可以解决Mac上相同的问题吗? - Abhay Kumar
你可能想查看这个线程https://dev59.com/L3A65IYBdhLWcg3w1SVC#6131858。他们建议使用Homebrew进行安装。 - Ryan
谢谢!这个方法在Ubuntu 12.04上有效,并且解决了我的问题。 - Kurt Funai

6

由于这个问题在谷歌上一直是前几个结果之一,我应该指出,这个答案是近两年前的。下面是一个更加更新的答案:如何在Windows 7上的Rails 3应用程序中使用“mysql2”宝石?


据开发人员称,已经有了一份关于此问题的报告,并且他正在将mysql2分离到Windows。目前仍在进行中。现在可以使用旧的mysql驱动程序,或者在本地开发时使用sqlite。

这是来自googlegroups讨论的内容

Blockquote 嘿,Erwann, mysql2问题跟踪器上已经有了Win32支持的票据 在http://github.com/brianmario/mysql2/issues#issue/8 . 您可以跟随 它以获取进展; 我正在尽力为您提供顺畅的工作。 你们挺住! :)


2

它的工作原理是,c:> gem install mysql2 -- '--with-mysql-lib="C:\Program Files\MySQL\MySQL Connector C 6.0.2\lib\opt" --with-mysql-include="C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"'

暂时将PATH修改为包含DevKit ...

正在构建本地扩展。可能需要一些时间...

mysql2-0.3.6安装成功

已安装1个gem

为mysql2-0.3.6安装ri文档...

未知类/模块“mMysql2”的Client被封闭

为mysql2-0.3.6安装RDoc文档...

未知类/模块“mMysql2”的Client被封闭

注意:

I. 如果你的mysql中没有lib和include目录,则安装mysql连接器c

II. 必须先安装DevKit,然后才能在Windows上安装mysql2插件。 https://github.com/oneclick/rubyinstaller/wiki/Development-Kit


2

1
你可以尝试

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

0

0
在Cygwin下,我必须确保安装的不仅是libmysqlclient18,还有libmysqlclient-devel。然后"gems install mysql2"就可以了。
当然,在Cygwin中也有一个ruby-mysql2包。

-1

键:显示"您必须先安装开发工具"的那一行。 参考:devkit


请确保其他 gem 安装成功(例如 "rdiscount" gem),并粘贴您的输出日志。我猜您想要安装 mysql gem? - rogerdpack

-1

使用

gem install mysql

对于Windows系统,直到mysql2正确运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接