irb readline support on Leopard

Written . Tagged OS X, Ruby.

The irb (Interactive Ruby) that ships with OS X Leopard does not have readline support. Instead it uses libedit.

This means that things like ⌃R for reverse history search don’t work. More importantly to me, you can’t use non-ASCII characters like Swedish “å”, “ä” and “ö”.

Compiling your own Ruby (with readline) is one solution. If you just want ctrl+R, macosxhints has another.

The solution I’m currently using is the work of jptix, a regular on the ##textmate IRC channel. He asked me to blog about it, so here it is.

Get MacPorts and install readline (you must specify +universal, even on Intel):

sudo port install readline +universal

Get the Ruby extension for readline:

svn co readline

Apply a small patch to readline/extconf.rb:

curl | patch readline/extconf.rb

Compile and install the extension. You likely need the OS X developer tools, or have a C compiler from elsewhere:

cd readline
ruby extconf.rb
sudo make install

All döne. Håppy häcking.