Snow Leropard上编译ruby1.9.2

今天收到消息,说Ruby1.9.2 Release了。受不了诱惑,立马去下载了最新版本。其实基本的编译还是很简单的,

[~/package/ruby-1.9.2-p0]$ ./configure --prefix=/Users/AnkyHe/local/ruby192 --enable-pthread --enable-shared CFLAGS='-I/User/AnkyHe/local/readline/include -DHAVE_RL_USERNAME_COMPLETION_FUNCTION' LDFLAGS='-L/Users/AnkyHe/local/readline/lib'

 

make

make test

make install

 

(大家一定要注意,GNU readline这个库不要使用版本6的,因为它的版权许可GPLv3和Ruby1.9.2不相符。)

 

这样编译,irb还是不支持上下键查找历史命令的功能。其实答案很简单,你可以检查一下ext/readline/mkmf.log这个文件,会发现check  ‘tgetnum’ undeclared。在Snow leopard,这个函数定义在/usr/include/termcap.h里面。在./include/ruby/ruby.h里面加入#include <termcap.h>,然后再进入ext/readline目录里面运行一下

 

 

[~/package/ruby-1.9.2-p0/ext/readline]$ ruby extconf.rb 

最后退回到原目录重新make一下就OK了

 

[~/package/ruby-1.9.2-p0]$ make; make install

可以试一下irb的功能噢,可以上下动了:)

 

你可能感兴趣的:(ext,Ruby)