IronRuby+IIS+Typo的尝试和对Ruby跨平台性的质疑

一开始,我只是想找一个当前博客程序的替代品。而我发现了Typo这样令人激动的基于RoR的开源博客程序,跃跃欲试想把Typo运行在IIS + IronRuby + IronRuby.Rack上。

Typo 5.5依赖于Ruby 1.8.7 + Rails 2.3.8。IronRuby 1.0基本兼容Ruby 1.8.6,我想问题应该不大。

XP系统,一个崭新的IronRuby 1.0安装版。安装Rails:

为了方便,打算使用SQLite数据库,在IronRuby下,sqlite3-ruby这样的gem是不能用的,需要用sqlite3-ironruby这样的替代方案。早在这一步我就应该注意到一些问题了,但我当时没有在乎:

尝试了几次RubyGems直接安装Typo都失败了,我自己从ZIP里解压了一份Typo 5.5。

在config目录下创建database.yml:

然后执行rake操作DB:

问题来了,rake报告有一系列需要依赖的gem没有安装。那就让它装:

找不到gem命令,没问题,把igem.bat复制一份命名为gem.bat。

再执行,大部分安装都成功了,除了json、bluecloth 2.0.5和RedCloth 4.2.2。报错都在编译Native Extension上。

去RubyForge上找齐了这三个的Windows预编译版本,再用RubyGems单独从本地安装,成功。

再尝试之前的DB Migrate操作,rake却依然报告找不到两个gem依赖:

经过各种google,终于在IronRuby官网(Documentation –> Real Ruby Applications –> RubyGems –> Native gems)上得知了一个噩耗:

Native extensions are not supported by IronRuby. Currently, there is no known way of avoiding native gems. When you install gems, you will have to manually exclude gems with win32 in the name.

本来就是希望跨平台采用了IronRuby,结果这又出现平台依赖的要素了。这不得不令我质疑之前自己对Ruby跨平台性的认识。

现在的疑问是Native Extension在Ruby开源界占有多大比重?IronRuby在缺少此类支持的情况下,能为我带来多少好处?


恭祝2009新春快乐,牛年吉祥

除夕将至,恭祝我的亲人和朋友们:

新春快乐,牛年吉祥!

以往每逢佳节是要发短信的。今年春节加些花样,原创一个网页吧。如果现在你看到的这个页面不像很花哨的,请点击下边的图片,就可以切换了。

NewSpringCard2009

本网页系ArtRage 2和Wacom手写板手绘,Photoshop CS3切图。

之前还有打算为大家奉上几幅喜庆的四格漫画,由于家里安排比较满所以没有来得及。过年七天乐,大概还有机会练练笔的。


EvisBlog.NET is now open source

本博客的源代码,即定制开发的BlogEngine.NET,现已开源并托管在Google Code Hosting。网址是:http://evis-blogenginedotnet.googlecode.com/
The source code of this blog, which is developed based on BlogEngine.NET, is now open source and hosted at Google Code Hosting. The URL address is http://evis-blogenginedotnet.googlecode.com/.

为应对Ms-RL协议相应条款,本博客引擎名称改为EvisBlog.NET。其他详细信息请参考之前的文章:Welcome to EvisMe.BlogEngine.NET using Microsoft Access database
This blog engine is renamed to EvisBlog.NET in reaction to the related items of Ms-RL license. For other details you may refer to the previous post Welcome to EvisMe.BlogEngine.NET using Microsoft Access database.