Problems with the rails console, RVM and readline

RubyRvmReadline

Ruby Problem Overview


I've installed rvm as a way of making sure that my local development version of ruby is the same as my server's for a particular app i work on (ruby 1.8.7). I've done this, and installed ruby 1.8.7 ok. However, when i try to start the rails console i get this error:

Readline was unable to be required, if you need completion or history install readline then reinstall the ruby.
You may follow 'rvm notes' for dependencies and/or read the docs page http://rvm.beginrescueend.com/packages/readline/ . Be sure you 'rvm remove X ; rvm install X' to re-compile your ruby with readline support after obtaining the readline libraries.
Couldn't load Wirble: no such file to load -- wirble

I've read the notes on the page that error refers to (http://rvm.beginrescueend.com/packages/readline/), and followed the instructions, which involve basically installing readline, uninstalling ruby 1.8.7, then installing ruby 1.8.7 again with readline support. (actually that page uses ruby 1.9.2 as an example but i'm assuming it should work with 1.8.7 as well. Perhaps that's not the case).

But, i still get the same error. Has anyone else been through this and figured it out?
Grateful for any advice - max

EDIT - i'm using Ubuntu 9.10 btw in case that's relevant.

EDIT - here's my output for rvm info as asked for below:

$ rvm info

system:

  system:
    uname:       "Linux max-laptop 2.6.31-22-generic #68-Ubuntu SMP Tue Oct 26 16:38:35 UTC 2010 i686 GNU/Linux"
    bash:        "/bin/bash => GNU bash, version 4.0.33(1)-release (i486-pc-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.1.6 by Wayne E. Seguin ([email protected]) [http://rvm.beginrescueend.com/]"

  homes:
    gem:          "not set"
    ruby:         "not set"

  binaries:
    ruby:         "/usr/bin/ruby"
    irb:          "/usr/bin/irb"
    gem:          "/usr/bin/gem"
    rake:         "/usr/bin/rake"

  environment:
    PATH:         "/home/max/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin:/home/max/software/svnmerge:/home/max/.gem/ruby/1.8/bin:/home/max/work/e_learning_resource/trunk/public/assets/dvd_files/bin:/opt/firefox:/home/max/.rvm/bin:/home/max/.rvm/bin"
    GEM_HOME:     ""
    GEM_PATH:     ""
    MY_RUBY_HOME: ""
    IRBRC:        ""
    RUBYOPT:      ""
    gemset:       ""

Ruby Solutions


Solution 1 - Ruby

I had a similar problem it was with 1.9.2 on Ubuntu 10.04, but the symptoms were identical. In order to get it to work:

rvm pkg install readline

or prior to RVM version 1.6.32, you need the following command

rvm package install readline

Then:

apt-get install ncurses-dev

And then taking from their instructions at http://rvm.beginrescueend.com/packages/readline/

cd $HOME/.rvm/src/ruby-1.9.2-p0/ext/readline
ruby extconf.rb -- --with-readline-dir="$HOME/.rvm/usr"
make install

I had actually done a system rvm install on the server, so I needed to do this:

cd $HOME/.rvm/src/ruby-1.9.2-p0/ext/readline
ruby extconf.rb -- --with-readline-dir="/usr/local/rvm/usr"
make install

After that I was able to have full access to the console.

Solution 2 - Ruby

Run the command

rvm requirements

It shows the requirements and dependencies. Install those and reinstall the ruby on rvm

rvm remove 1.9.2
rvm install 1.9.2

It works!

Solution 3 - Ruby

I got same problem and solved it. I check http://rvm.beginrescueend.com/packages/readline/ Please check follow 2 things:

  1. sudo aptitude install libreadline5-dev libncurses5-dev use libreadline6-dev, if you have a new version.
  2. ruby extconf.rb -- --with-readline-dir='/home/youruser/.rvm/usr/include/readline' make sure you have the readline lib files under the with-readline-dir you pointed.

Solution 4 - Ruby

Have you trying this tutorial to use the readline install by brew ?

http://blog.plataformatec.com.br/2010/05/accented-chars-in-irb-with-rvm-and-ruby-1-8-7/

Solution 5 - Ruby

Readline was unable to be required, if you need completion or history install readline then reinstall the ruby.
You may follow 'rvm notes' for dependencies and/or read the docs page https://rvm.io/packages/readline/ . Be sure you 'rvm remove X ; rvm install X' to re-compile your ruby with readline support after obtaining the readline libraries.

If you follow that link, you will find some instructions on how to fix this problem. What worked for me was the first step, removing all the manually installed packages:

 $ rm -rf $rvm_path/usr

and then

$ rvm requirements
$ rvm reinstall 1.9.3

Hope it works!

Solution 6 - Ruby

Tried gem install rb-readline

Still did not work. So started irb and did a require readline. The error message helped.

    Readline was unable to be required, if you need completion or history install readline then reinstall the ruby.
You may follow 'rvm notes' for dependencies and/or read the docs page https://rvm.io/packages/readline/ . Be sure you 'rvm remove X ; rvm install X' to re-compile your ruby with readline support after obtaining the readline libraries.
1.9.3p327 :001 > require 'readline'
LoadError: /usr/local/lib/libreadline.so.6: undefined symbol: UP - /home/sudhir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/x86_64-linux/readline.so
	from /home/sudhir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
	from /home/sudhir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
	from (irb):1
	from /home/sudhir/.rvm/rubies/ruby-1.9.3-p327/bin/irb:16:in `<main>'
1.9.3p327 :002 > ^[[6^[[A^[[A^[[B^C^C

So the problem in my case was all the libreadline* in /usr/local/lib. I had installed readline from source code and that was messing it up.

Followed the instructions here to fix it. http://vkarthickeyan.wordpress.com/2012/02/16/mysql-symbol-lookup-error-usrlocalliblibreadline-so-6-undefined-symbol-up/

Solution 7 - Ruby

I had this problem with Ruby 2.1.3. Upgrading RVM then reinstalling Ruby worked for me:

rvm get stable
rvm reinstall 2.1.3

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMax WilliamsView Question on Stackoverflow
Solution 1 - RubyGeoff LanotteView Answer on Stackoverflow
Solution 2 - RubySayujView Answer on Stackoverflow
Solution 3 - RubyRaceView Answer on Stackoverflow
Solution 4 - RubyshingaraView Answer on Stackoverflow
Solution 5 - RubyfiniteautomataView Answer on Stackoverflow
Solution 6 - RubySudhirView Answer on Stackoverflow
Solution 7 - RubyoliView Answer on Stackoverflow