mysql ruby gem 未在 Windows 上安装 7

mysql ruby gem not installing on Windows 7

Not a duplicate. This question is mysql gem and the other question is mysql2 gem. They do have the same answer though, but the other question's answer doesn't tell what the solution is explicitly. The answer is hidden in the comments. See yellow text of the answer for this question contains the solution.

下面是我在 Windows.

上尝试安装 mysql gem 时收到的错误
C:\>gem install mysql
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

    C:/Ruby22-x64/bin/ruby.exe -r ./siteconf20150520-7968-hbly9l.rb extconf.rb
checking for main() in -llibmysql... 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.

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=C:/Ruby22-x64/bin/$(RUBY_BASE_NAME)
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-libmysqllib
        --without-libmysqllib

extconf failed, exit code 1

Gem files will remain installed in C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql-
2.9.1 for inspection.
Results logged to C:/Ruby22-x64/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0
/mysql-2.9.1/gem_make.out

我是怎么走到这一步的?

  1. 已为 Windows 安装 MySQL。

http://dev.mysql.com/downloads/windows/installer/

  1. 已为 Windows 安装 Python。此步骤可能与我的错误无关,但我将其包括在内,因为它是我正在部署的构建所必需的。

https://www.python.org/downloads/

  1. 已为 Windows 安装 Ruby。看起来我下载了“rubyinstaller-2.2.2-x64.exe 并安装了它。

http://rubyinstaller.org/downloads/

  1. 已安装 Ruby 个 Gem。看起来我下载并提取了 "rubygems-2.4.7.zip"。

https://rubygems.org/pages/download

然后 运行 来自 Windows 命令提示符的这些命令:

gem update --system

... 安装在 C:/Ruby22-x64/bin/gem

gem install rubygems-update

update_rubygems

... 然后 cd {文件夹解压缩到}

ruby setup.rb
  1. 然后我尝试像这样安装 mysql gem。并得到一个错误。

    C:>gem 安装 mysql 获取:mysql-2.9.1.gem (100%) 错误:安装 mysql 时出错: 'mysql' 本机 gem 需要安装构建工具。

    请更新您的 PATH 以包含构建工具或下载 DevKit 来自 'http://rubyinstaller.org/downloads' 并按照说明操作 在'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

  2. 所以我按照说明去做了。我去了那个页面 (http://rubyinstaller.org/downloads)。看来我下载了 "DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe"。当我提取愚蠢的提取器时,将文件与其他所有文件放在同一目录中。所以请确保在下载后和解压前创建一个新文件夹。

然后我运行这个命令。

ruby dk.rb init

然后我运行这个命令,得到一个错误。

ruby dk.rb install

我必须确保 "config.yml" 文件指向我机器上安装了 Ruby 的 C:\Ruby22-x64 文件夹。我删除了评论并更改了路径。然后重新运行命令,成功了。

ruby dk.rb install

然后运行这个命令。

gem install rdiscount --platform=ruby
  1. 然后尝试重新安装mysqlgem。并在我的问题中得到了错误。多么 gem! "I got you jewels Betty, jewels!"

    gem 安装 mysql

编辑 2015 年 5 月 21 日:

根据下面的问题,我遇到了一个新错误。

Ruby MYSQL2 gem installation on windows 7

C:\>gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\
lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysq
l-connector"'
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-mysql-lib="C:\mysql-connector\lib" --wi
th-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connect
or"'
This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    C:/Ruby22-x64/bin/ruby.exe -r ./siteconf20150521-10824-1plgdr8.rb extconf.rb
 --with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connec
tor\include" --with-mysql-dir="C:\mysql-connector"
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using --with-mysql-dir=C:\mysql-connector\include;C:\mysql-connector\include;C:\
mysql-connector
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
*** 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=C:/Ruby22-x64/bin/$(RUBY_BASE_NAME)
        --with-mysql-dir
        --with-mysql-include=${mysql-dir}/include
        --with-mysql-lib=${mysql-dir}/lib
C:/Ruby22-x64/lib/ruby/2.2.0/rake/task_manager.rb:62:in `[]': Don't know how to
build task 'C:/mysql-connector/lib;C:/mysql-connector/lib;C:/mysql-connector/lib
/libmysql.lib' (RuntimeError)
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:57:in `lookup_prerequisit
e'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `block in prerequis
ite_tasks'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `map'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `prerequisite_tasks
'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:199:in `invoke_prerequisi
tes'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:178:in `block in invoke_w
ith_call_chain'
        from C:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_
chain'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:165:in `invoke'
        from extconf.rb:117:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql2
-0.3.18 for inspection.
Results logged to C:/Ruby22-x64/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0
/mysql2-0.3.18/gem_make.out

C:\>

The 'mysql' and 'mysql2' packages/extensions/gems don't work with the x64 bit version of Ruby on Windows 7 (or any 64 bit version of Windows). You need to install the x86 (32) bit version of Ruby for them to work.

所以我在我的问题中重复了第 3 步,并安装了 1.9 版,而不是采纳 luislavena 于 2013 年 8 月 30 日在我的问题(第 191 期)中发表的评论中的建议。这是 x86(32 位)版本.从这里得到它。

http://rubyinstaller.org/downloads/

文件名似乎是 "rubyinstaller-1.9.3-p551.exe".

然后完成第 4 步。Ruby 开发人员必须修复他们的脚本以自动为 x86 版本修改 config.yml 文件。这次我不用编辑了。

然后在第 5 步中,我安装了这个 devkit exe,因为较新版本的 Ruby 没有 x86 的开发工具包。

对于第 6 步,我将其放入它自己的文件夹中。它仍然在 exe 根目录中提取文件,而不是 exe 根目录的文件夹。然后 运行 除最后一个命令外的所有命令。它仍然抛出错误。

"DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe"

然后对于第 7 步,我 运行 这个。

gem install mysql

安装了x86版本的mysqlgem,因为我可以看到gem,通过运行这个。很闪很显贵!

gem list

5/26/2015 更新:

Latest version of Ruby when installed on Windows that allows you to start the Rails server is 2.1.6.

运行 "rails s" 无法启动 rails 服务器。我不得不回去卸载旧版本的 Ruby。在这里查看我的回答。如果您在 Windows.

上,请忽略其他答案

Remove older versions of Ruby (on Windows)

Windows 上唯一允许您启动 rails 服务器的 Ruby 稳定版本是 "rubyinstaller-2.1.6.exe"。 "rubyinstaller-2.2.2.exe" 抛出以下错误:

C:/row/Ruby22/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2-x86-mingw32/lib/nokogiri
.rb:29:in `require': cannot load such file -- nokogiri/nokogiri (LoadError)
        from C:/row/Ruby22/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2-x86-mingw32
/lib/nokogiri.rb:29:in `rescue in <top (required)>'
... 
... continued