Ruby on Rails安装问题(Windows)

时间:2013-11-13 05:44:05

标签: mysql ruby-on-rails ruby windows

我从RuyInstaller安装了Ruby 2.0.0和DevKit。我在创建新项目时收到错误消息:

rails new testtest -d mysql

..... a lot of output here ........

Installing mysql2 (0.3.14)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    C:/Ruby200/bin/ruby.exe extconf.rb
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** 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.

如何安装依赖项以使这个gem没有任何错误?

3 个答案:

答案 0 :(得分:9)

在Windows上需要MySQL 32位(或MySQL Connector C)来编译mysql2 gem编译(即使您使用的是64位版本的操作系统)。

请按照以下步骤操作:

  1. 下载MySQL服务器32位.zip文件(或者MySQL Connector C也可以)
  2. libmysql.dll复制到%RUBY_HOME%\bin(或者只是将MySQL 32位lib目录添加到PATH)
  3. 使用--with-mysql-lib--with-mysql-include选项

    安装mysql2 gem
    gem install mysql2 -- '--with-mysql-lib="c:\path\to\32-bit-MySQL-Server\lib\opt" --with-mysql-include="c:\\path\to\32-bit-MySQL-Server\include"'
    

答案 1 :(得分:0)

这是我的故事。试图用devkit在windows 7上安装mysql2 gem。 首先,您需要安装连接器库和标头。 不要使用默认文件夹“Program Files”,gem无法包含带空格的文件夹。 我通过子X:\“C:\ Program File \ Mysql Connector 6 C \”对连接器文件夹进行了修改 然后使用以下cmd: gem install mysql2 - --with-mysql-dir = X:\ 然后意识到我正在使用32位ruby的64位连接器库。 重新安装连接器。 然后gem成功安装。 但未能运行,抱怨缺少mysql dll。所以,我把libmysql.dll和* .lib放到ruby \ bin文件夹中。毕竟这是能够用户mysql2的宝石。

答案 2 :(得分:0)

如果你想使用64位MySQL,你应该按照herehere)的说明进行操作。

还有a custom built 64-bit connector无需麻烦。