mysql ruby​​ gem未在Windows 7上安装

时间:2015-05-20 22:12:32

标签: mysql ruby windows-7 gem rubygems

  

不重复。这个问题是mysql gem,另一个问题是mysql2 gem。他们确实有相同的答案,但另一个问题的答案并没有明确说明解决方案是什么。答案隐藏在评论中。请参阅此问题的答案的黄色文本包含解决方案。

以下是我尝试在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. 安装MySQL for Windows。
  2. http://dev.mysql.com/downloads/windows/installer/

    1. 已安装的Python for Windows。这一步可能与我的错误无关,但我包括它,因为它是构建我需要部署的。
    2. https://www.python.org/downloads/

      1. 已安装Ruby for Windows。看起来我下载了" ruby​​installer-2.2.2-x64.exe并安装了它。
      2. http://rubyinstaller.org/downloads/

        1. 已安装的Ruby Gems。看起来我下载并提取了#34; ruby​​gems-2.4.7.zip"。
        2. 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 install 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)。看起来我下载了#34; DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe"。当我解压缩愚蠢的提取器时,将文件与其他所有内容放在同一目录中。因此,请确保在下载之后和解压缩之前创建一个新文件夹。

          3. 然后我跑了这个命令。

            ruby dk.rb init
            

            然后我运行了这个命令,并收到错误。

            ruby dk.rb install
            

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

            ruby dk.rb install
            

            然后运行此命令。

            gem install rdiscount --platform=ruby
            
            1. 然后尝试重新安装mysql gem。并在我的问题中得到了错误。真是太棒了! "我给你珠宝贝蒂,珠宝!"

              gem install mysql

            2. 编辑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:\>
              

1 个答案:

答案 0 :(得分:2)

  

&#39; mysql&#39;和&#39; mysql2&#39;包/扩展/宝石不能使用   Windows 7上的x64位版本的Ruby(或任何64位版本的   视窗)。您需要安装x86(32)位版本的Ruby for   他们工作。

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

http://rubyinstaller.org/downloads/

看起来该文件的名称是&#34; ruby​​installer-1.9.3-p551.exe&#34;。

然后完成第4步.Ruby开发人员必须修复他们的脚本以自动修改x86版本的config.yml文件。我没有必要编辑这段时间。

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

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

&#34;的devkit-TDM-32-4.5.2-20111229-1559-sfx.exe&#34;

然后对于第7步,我跑了。

gem install mysql

它安装了x86版本的mysql gem,因为我可以通过运行它看到gem。它非常有光泽,看起来很贵!

gem list

2015年5月26日更新:

  

安装在Windows上的最新版本的Ruby允许您使用   启动Rails服务器是2.1.6。

启动rails服务器并没有通过运行&#34; rails s&#34;来工作。我不得不回去卸载旧版本的Ruby。在这里看到我的答案。如果你在Windows上,请忽略其他答案。

Remove older versions of Ruby (on Windows)

Windows上唯一可以启动rails服务器的Ruby稳定版本是&#34; ruby​​installer-2.1.6.exe&#34;。 &#34; ruby​​installer-2.2.2.exe&#34;抛出以下错误:

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