背后的故事:One-Click Ruby Installer

在windows平台上开发RoR工程,可以使用方便的One-Click Ruby Installer进行ruby以及gem的安装。然而近日,在cygwin上安装ruby开发环境时,才开始明白这个One-Click背后的故事。

 

我的cygwin本地安装包是cygwin-release-20061108.iso,其中的ruby是1.8.5版的。在它下面安装好RoR环境后,启动mongrel时会提示ruby版本过低。因此有必要将它升级到1.8.6版。到ruby官网上一看,没有cygwin上的安装包(当然,可以去cygwin的镜像上面下载,但那速度真让人抓狂),只有自己动手,编译源码了。还好,源码中有详尽的readme,让我这个第一次做本地编译的人,也很快就搞定ruby的安装了。

 

装完ruby,接着就要装gem了,也就是去gem的官网,下载安装压缩包。但是在运行 ruby setup.rb 时,硬是有loadError。搜了一下,说要把一个RUBYOPT的windows环境变量删掉。这个变量不是我手动添上去的,看来是One-Click Ruby Installer自作主张了。删掉之后,果然一切OK。

 

装好必要的gem包之后,运行一个以前的RoR程序,打开server时,硬是说找不到rails这个gem。无语,明明装好了。在irb中 require 'active_record' 同样也说找不到gem。怎么回事呢?

 

终于,在gem的官网文档中找到了答案:gem的安装路径,是不在ruby的库搜索路径中的,直接require当然找不到了。解决办法嘛,要么先 require 'rubygems',要么……加上RUBYOPT的环境变量,其值为rubygems。这一删一加,够无语的。

 

故事还没有完。当我用 ri Array 时,竟然没有文档信息显示出来。这说明ri文档没有安装。于是又搜了半天,终于得知需要在源码文件夹下运行 RDoc -Y来安装系统文档。试了一下,果然正解。

 

OK,这下可算是在cygwin中把ruby装好了。可能有人觉得这是画蛇添足,放着好好的windows中的ruby不用,干嘛要到cygwin中折腾。但我看来,用过cygwin之后,windows中的ruby就可以弃之不用了,或者说完全不想用了。这cgywin的好处,谁用谁知道。

你可能感兴趣的:(windows,Ruby,rubygems,Rails)