Windows下搭建Ruby+Watir的环境颇为麻烦,建议使用linux平台,问题会少一点,如果你坚持在windows下面做,请继续往下看:
1、去rubyinstall下载对应版本的安装程序,使用rubyinstall能为我们节省不少时间去设置相应的环境变量。(ps:注意尽量ruby的安装路径不要带有空格,避免后期各种不必要的问题。)
2、安装过程就不赘述了,一路点下去就可以了。
3、ruby下安装第三方代码库主要使用gem进行安装,安装前建议先更新gem版本,最新版本的gem能保证在安装第三方库时及时抓取相应的库依赖关系,确保程序正确性,更新代码:
gem update --system --no-rdoc --no-ri
--no-rdoc --no-ri作用是在发布环境中设置是否同步更新代码库的文档,ri是ruby中的文档查阅工具,rdoc就是相应代码库的文档。
4、关于mysql适配器的安装,ruby下mysql主要有3个连接适配器:mysql、mysql2、do_mysql,网上有篇查询效率的比较(三万行数据的遍历操作)
user system total real 0.750000 0.180000 0.930000 ( 1.821655) Mysql2 1.650000 0.200000 1.850000 ( 2.811357) do_mysql 7.500000 0.210000 7.710000 ( 8.065871) Mysql
所以我们这里选择mysql2(这里的结果是基于当时版本的结果,建议大家自己试一下),安装时如果直接运行gem install mysql2 会报错
ERROR: Error installing mysql2: The 'mysql2' native gem requires installed build tools. 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'
这里主要做两步操作:
第一步是需要安装DevKit ,DevKit 是windows平台下编译和使用本地C/C++扩展包的工具。它就是用来模拟Linux平台下的make, gcc, sh来进行编译。到rubyinstall去下载相应版本DEVELOPMENT KIT,下载后解压出来(同样注意路径中不要有空格),我们把这个路径定义<DEVKIT_INSTALL_DIR>,接着依次运行以下命令进行安装
> cd <DEVKIT_INSTALL_DIR> > ruby dk.rb init #生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby,比如- C:\Ruby200-x64 #如果这里列出的Ruby与你的要求不符,可以手动修改 > ruby dk.rb review #检查要添加DevKit支持的Ruby列表是否有误,可以略过 > ruby dk.rb install [INFO] Updating convenience notice gem override for 'C:/Ruby192' [INFO] Installing 'C:/Ruby192/lib/ruby/site_ruby/devkit.rb'
第二步是需要指定mysql2连接mysql的connector,到mysql官网去下载相应的connector,解压后执行以下命令:
cd mysql connector安装目录
gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\Ruby200-x64\mysql-connector\lib" --with-mysql-include="C:\Ruby200-x64\mysql-connector\include" --with-mysql-dir="C:\Ruby200-x64\mysql-connector"'。
或者你可以使用mysql自带的connector:
cd mysql安装目录 gem install mysql2 -- '--with-mysql-lib="D:\Program Files\MySQL\MySQL Server 5.6\lib" --with-mysql-include="D:\Program Files\MySQL\MySQL Server 5.6\include"'
当然你也可以使用subst X:命令来处理目录问题,需要注意的是安装完相应的gem包可能在连接mysql的时候还会报错,需要将mysql安装目录下的bin下的libmysql.dll复制到 ruby安装目录/lib下即可
参考内容:
1、http://www.cnblogs.com/ilazysoft/archive/2011/09/08/2171209.html
2、http://rubyer.me/blog/134/
3、https://bugs.ruby-lang.org/issues/8591