今天向在自己的win7上配置ruby on rails 环境,结果被mysql2 和 gcc 的问题给卡住了
我的环境
Ruby 1.9.2 and Rails 3.1.0 on Windows7
先看错误提示
bundle install |
Errors:
.... Using jquery-rails ( 1 . 0 . 13 ) Installing mysql2 ( 0 . 3 . 7 ) C :/Ruby192/lib/ruby/site_ruby/ 1 . 9 . 1 /rubygems/defaults/ operating_system.rb: 9 :in `block in <top (required)> ': The ' mysql2' native gem re quires installed build tools. (Gem::InstallError) Please update your PATH to include build tools or download the DevKit from 'http://rubyinstaller.org/downloads' and follow the instructions at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit' from C :/Ruby192/lib/ruby/site_ruby/ 1 . 9 . 1 /rubygems/installer.rb: 141 :in `c all' .... |
找了不少方法,有copy mysql2.dll的, 有安装gcc的, 下面是从google翻出来的东西, 经过实践, 完美解决问题
1. Download Development Kit "http://github.com/downloads/oneclick/rubyinstaller/DevKit-tdm-32-4.5.1-20101214-1400-sfx.exe" from http://rubyinstaller.org/downloads/
2. Followed the instructions given on linkhttps://github.com/oneclick/rubyinstaller/wiki/Development-Kit
3. Extracted the downloaded DevKit.
4. cd <DEVKIT_INSTALL_DIR>
5. run ruby dk.rb init.
of the installed Rubies you want enhanced by the DevKit.
6. edit the generated config.yml file as per your system available Rubies version if required
7. [optional] ruby dk.rb review to verify the changes you made to it are correct.
8. finally, ruby dk.rb install to DevKit enhance your installed Rubies.
9. You have successfully installed the DevKit, and now comes the step to install mysql2 gem, most important one for which we took so many steps. Make sure you are using Ruby 1.9.2 version.
10. Run gem install myql2 with parameters that I have passed, path can differ for you so make changes accordingly.
注意,上面的命令中, MySQL Server 5.5是我的mysql版本, 需要视情况个人自己替换。
然而我们没有那么顺利, 上面的命令行出错了, 如下:
C :\Users\Ivan\Downloads\dev>gem install mysql2 -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5 . 5 \lib\opt " --with-mysql-include=" c:\Program Files\MyS QL \MySQL Server 5 . 5 \include"' Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while ... ERROR : Error installing mysql2: ERROR : Failed to build gem native extension. C :/Ruby192/bin/ruby.exe extconf.rb --with-mysql-lib="c:\Program Files\My SQL \MySQL Server 5 . 5 \lib\opt " --with-mysql-include=" c:\Program Files\MySQL\MySQL Server 5 . 5 \include" checking for rb_thread_blocking_region()... yes 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 :/Ruby192/bin/ruby --with-mysql-dir --without-mysql-dir --with-mysql-include=${mysql-dir}/include --with-mysql-lib=${mysql-dir}/lib --with-libmysqllib --without-libmysqllib Gem files will remain installed in C :/Ruby192/lib/ruby/gems/ 1 . 9 . 1 /gems/mysql2- 0 . 3 . 7 for inspection. Results logged to C :/Ruby192/lib/ruby/gems/ 1 . 9 . 1 /gems/mysql2- 0 . 3 . 7 /ext/mysql2/ge m_make.out |
哈哈,不用担心,经验是要分享的,翻遍了google终于发现了有用的命令, 如下
subst X : "C:\Program Files\MySQL\MySQL Server 5.5" gem install mysql2 --platform=ruby -- --with-mysql-dir= X : --with-mysql-lib= X :\lib\opt subst X : / D 如果这里依然出错, 建议到google把mysql2.dll 下载下来放入ruby的安装目录下就可以解决问题如果是想指定版本号的话, 加个参数 -v= 0 . 2 .13gem install mysql2 -v= 0 . 2 . 13 --platform=ruby -- --with-mysql-dir= X : --with-mysql-lib= X :\lib\opt subst X : / D |
ERROR: Could not find a valid gem 'mysql2' (>= 0) in any repository
ERROR: Possible alternatives: mysql2
安装成功
C :\Users\Ivan\RubymineProjects\eco_apps_test\pet>gem install mysql2 --platform=r uby -- --with-mysql-dir= X : --with-mysql-lib= X :\lib\opt Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while ... Successfully installed mysql2- 0 . 3 . 7 1 gem installed Installing ri documentation for mysql2- 0 . 3 . 7 ... Enclosing class / module 'mMysql2' for class Client not known Installing RDoc documentation for mysql2- 0 . 3 . 7 ... Enclosing class / module 'mMysql2' for class Client not known |
搞定, 收工, 折腾了一个上午.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)