Rails 3.1 "rails console" fails with "no such file to load -- readline"

October 12, 2011

This post was originally published in the Rambling Labs Blog on October 12, 2011.

Yesterday, I was trying to run the rails console command on Ubuntu with ruby 1.9.2 and rails 3.1, without any success. I was getting a no such file to load -- readline error. This kind of error was sort of familiar for me (I had the common no such file to load -- zlib and the not so common no such file to load -- openssl a while ago). So this was probably another package that I was missing.

Turns out that as I found in a Stack Overflow question, I needed the libreadline-dev, which I didn’t have installed. But I also needed to recompile ruby, seriously!?

This is where rvm comes to the rescue, and why I love so much to have rvm installed :D. You only need to install the rvm package, remove the rubies and reinstall them. So I ended up running this set of commands, and if you have this issue, you should run it as well:

apt-get install libreadline-dev
rvm pkg install readline
rvm remove 1.9.2
rvm install 1.9.2
rvm --default 1.9.2
rvm use 1.9.2

And, when I finally ran rails console, it all went well. That’s it, no more recompiling ruby yourself. Let rvm take care of that.

Seems like I’m getting more familiar with this whole thing. :)