-
2006-07-29
编译Ruby
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://dreamhead.blogbus.com/logs/2936879.html
安装Cygwin
编译Ruby,首先要选择编译环境。如果是Linux环境,通常已经包含了必要的工具,而我的机器是Windows环境,正如我在前面的blog中提到过的,Cygwin将对用户友好的Windows和对开发者友好的Unix很好的结合在一起,所以,Cygwin成为了这次编译Ruby活动的首选。1 到Cygwin的网站上下载安装程序,不要为setup.exe只有几百K而窃喜,因为它只是一个引导程序,真正的程序在后面。
2 运行setup.exe,选择Downloading Without Installing。如果网速足够快的话,可以考虑Install from Internet。
3 略过俗套的目录选择,选择一个自己顺眼的下载站点。
4 选择需要的软件,如果想全部选择,点击All边上的小圈,我们可以看到后面内容的变化。有位实心的兄弟,为了全部安装,居然一项一项点选,佩服其耐性。我安装的成果是,全部下载需要几百M的空间,安装需要上G。如果不想全选,那就自便吧!
5 最好满足依赖关系,否则后果自负。
6 准备好了,漫长的下载过程开始了。如果运气好,一觉醒来,我们可以看到下载完成的提示。
7 再次运行setup.exe,选择Install from Local Directory,剩下的就是人所共知的本地安装了。编译Ruby
1 到Ruby的网站上,下载Ruby的源码,我下载的是最新的1.8.4的源码
2 进到Cygwin的Shell中,解压缩源码:
tar -xvf ruby-1.8.4.tar.gz
3 进到ruby的目录中,有兴趣的话可以拜读一下README。
4 ./configure,进行基本的配置,生成makefile
5 make,真正的编译过程,正常的话,会生成一个Ruby的可执行文件。
6 有兴趣的话,还可以验证一下生成的结果
make test一个小问题
我们肯定对新鲜出炉的Ruby有着无比浓厚的兴趣,于是写了一个Ruby版的“Hello,world”:
puts "Hello, world!"然后满怀欣喜的运行这个程序,期待着Ruby的问候:
./ruby hello.rb可能结果会很不幸,我们得到了一个出乎我们意料的结果:
./ruby: no such file to load -- ubygems (LoadError)这个问题来自Ruby的环境变量RUBYOPT,它是用来记录附加命令行参数,也就是说,对于常用的参数,只要把它设置在RUBYOPT中,就不必每次输入了。究竟是怎样的参数,阻挡了我们使用Ruby的脚步呢?echo一下。
echo $RUBYOPT
结果是:-rubygemsRubygems是一个类似于RPM的包管理器,不过,在这里怎么会成了绊脚石。看一下帮助就知道了,原来-r表示需要在执行脚本之前加载一个特定的库,于是,这个参数就被解释成了需要加载ubygems这个库,没有这个库当然就会加载失败了。最简单的解决办法就是抛弃它,在BASH中,我们可以这么做:
export RUBYOPT=这是一个很简单的问题,可我解决的过程中却走了好大弯路,居然是在顺着源码追进去很远的情况下才最终发现了问题所在。记得有问题先搜索!类似的问题在Windows上也有,如果你用的Ruby是One-Click的版本。不过,在那个版本中,它通过在Ruby的查找路径上添加了一个ubygems.rb的文件屏蔽了这个问题。
好了,问题解决了,就让新鲜的Ruby和我们问好吧!
./ruby hello.rb
Hello,world!
引用地址:










评论