#Windows 下编译 Native Gem 的一些经验 Windows 平台下喜欢捣鼓 Ruby 的同学也不少,有时会遇到 Native Gem 编译不过的情况,我这里有一些经验,希望能对大家有些帮助。也许有同学会问,为什么在 Windows 下搞这个?这个嘛,原因很多。;)
##几点经验
- 用 RubyInstaller 来装 Ruby 环境。
- 配置好 Devkit,这一步很重要,编译 Native Gem 就靠它了。
- 对于单纯的 Native Gem,比如说是某些 Gem 为了性能,不用 Ruby 写,而用 C 写,只用到了 Ruby 的 C 接口,这样的 Gem 不需要担心,Devkit 会很顺利的编译通过。
- 对于使用了其他开源库的 Gem,该开源库也有对应的 Windows 版(换句话说是 Windows 下该库能编译并使用)。那么这个 Gem 也能编译,但是需要配置一下 CPATH 和 LIBRARY_PATH。
- 对于依赖于系统特性的 Gem,比如使用 Linux 的 epoll,或使用了 Mac OS X 的 fsevent,那么这个 Gem 在 Windows 下是不能编译通过的。
##实战
###编译 RMagick RMagick 这个 Gem,它依赖于 ImageMagick,而 ImageMagick 是有 Windows 版的,也有 SDK。
安装 ImageMagick。这一步没有特殊的,记得安装时,把 SDK 勾选上。
在命令行下设置CPATH和LIBRARY_PATH。 set CPATH=d:\ImageMagick-6.5.6-Q8\include set LIBRARY_PATH=d:\ImageMagick-6.5.6-Q8\lib
gem install rmagick --platform=ruby
###编译 typhoeus 参见这里
###编译 pg - the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/] 以下步骤在 Windows 7, RailsInstaller 2.1.0.exe 环境,安装 pg 0.14.0 时通过。
- 手工将 C:\Program Files\PostgreSQL\9.1\bin 加入 PATH 环境变量
- gem install pg -- --with-pg-dir=c:/progra~1/postgr~1/9.
##总结 在 Windows 下 Ruby 环境的搭建其实也是比较方便的。遇到的主要问题就是编译 Native Gem,而编译 Native Gem 在 Windows 下也不是很困难,只要不是碰到严重依赖系统特性的 Gem 就好。