Java程序员学Ruby--从折腾开始

    这篇文章信息含量不高,基本上理解为吐槽+备忘就对了。

    最近想自己做一点东西,但是实在厌倦了J2EE世界里数不清的xml,也在寻求一种“高效的开发语言”。基本上说到高效和敏捷,大家都在推崇Ruby on Rails,所以抽周末的空来尝个鲜。

    学新语言,我一般喜欢先配置环境,弄几个短的snippet来看看,熟悉语法。于是就需要先配置环境。

    Ruby本身的安装还算简单,下载一个rvm,然后安装就可以了。安装后ruby本身的包和gems都会放在/opt/local/lib/ruby下。但是当我下载了一个Rails的app Rabel,尝试部署并启动时,噩梦就开始了。

    gem是Ruby包管理的一个工具,跟Maven类似。但是Java崇尚Compile Once,Run anywhere,所有的依赖管理都管理具体项目。而gem则是管理本地运行环境的,使用gem install     gem_name可以将包安装到本地。这样虽然运行具体项目会痛苦一点,却也极大避免了多个项目的依赖冲突问题。

    脚本语言都有个功能:本地扩展(Native Extension),跟Java里的JNI是一个意思。不过Java世界都崇尚pure Java,基本上依赖管理都是在jar包之间,完全是Maven可以搞定的。而脚本语言一般都秉承了UNIX世界的多模块混合的思想,经常使用本地扩展,例如xml解析,就使用libxml。安装本地库,就不是gem能搞定的事了。

    在mac下,最好安装一个port或者brew,不然得自己去make install之类的,很麻烦。port更加强大一些,但是会傻乎乎的下载重复的依赖。例如我要下载一个mysql-ruby的库,它会先下载mysql、再下载ruby,最后再下载这个库,而其实我只需要一个ruby扩展而已。当然port下载一些C语言的库是很有用的,如sqlite3、libxml之类,省去了编译和查找依赖的过程,这个过程对于Java程序员来说真是太痛苦了。

    在尝试使用rails server启动Rabel时,提示找不到nokogiri。使用gem install nokogiri安装之,发现缺少libxml依赖。后来使用port安装libxml之后,依然找不到。最后升级ruby版本之后,问题解决了。

    gems安装比较好的地方是,即使没有安装成功,它也会将临时文件保存在/opt/local/lib/ruby/gems/1.8/gems/gem_name目录下,供分析用。

    搞了大半天,因为build的时候又相当长,实在让人难过。下周继续。


转载于:https://my.oschina.net/flashsword/blog/88453

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值