今天收到消息,说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的功能噢,可以上下动了:)