I have tried everything I can think of to get this to work, to no avail so here I am requesting suggestions on how to debug.
Firstly, runnning Ubuntu 11.10
I
Ok, so this might seem pretty obvious, well it always is when you know the answer:
I gave up using RVM, and switched to rbenv - which I'm very pleased I did!
sudo apt-get install libreadline-gplv2-dev
CONFIGURE_OPTS="--with-readline-dir=/usr/include/readline --with-openssl-dir=/usr/local" rbenv-install 1.9.2-p290
This installed without error - and I'm still not convinced I need the gplv2 package as I've got libreadline6-dev installed. However that STILL didn't resolve my problem. It did remove RVM from the equation, and show me that despite my best efforts the IRB shell was refusing to use readline.
The answer came from reading through this great guide:
RubyTools.pdf
Inside my ~/.irbrc file I found:
IRB.conf[:USE_READLINE] = false
A quick update to:
IRB.conf[:USE_READLINE] = true
And I'm cooking on gas!!
Thanks for all the great answers and suggestion, I do appreciate your time.
You may try a workarround installing the package libreadline5-dev. I gess the libreadline6-dev is not working right now.
Forget about everything that you hear about any logic, just look here and do the same step-by-step:
(ubuntu x64):
$ ruby extconf.rb
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for readline() in -lreadline... no
checking for readline() in -ledit... no
checking for editline/readline.h... no
$ sudo aptitude install libedit-dev
..
$ ruby extconf.rb
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for readline() in -lreadline... no
checking for readline() in -ledit... yes
checking for rl_getc_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_filename_completion_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_username_completion_function() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_completion_matches() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_refresh_line() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_deprep_term_function in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_append_character in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_basic_word_break_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_word_break_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_basic_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_filename_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_attempted_completion_over in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_library_version in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_editing_mode in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_line_buffer in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_point in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_event_hook in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_sigwinch in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_signals in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_cleanup_after_signal() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_clear_signals() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_set_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_get_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_vi_editing_mode() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_emacs_editing_mode() in stdio.h,readline/readline.h,readline/history.h... no
checking for replace_history_entry() in stdio.h,readline/readline.h,readline/history.h... no
checking for remove_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for clear_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for RL_PROMPT_START_IGNORE in stdio.h,readline/readline.h,readline/history.h... yes
checking for RL_PROMPT_END_IGNORE in stdio.h,readline/readline.h,readline/history.h... yes
creating Makefile
anyway too much missing functions, but... do next
$ rvm pkg uninstall readline
...
╰─○ ruby extconf.rb
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for readline() in -lreadline... yes
checking for rl_getc_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_filename_completion_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_username_completion_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_matches() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_refresh_line() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_deprep_term_function in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_append_character in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_basic_word_break_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_word_break_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_basic_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_filename_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_attempted_completion_over in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_library_version in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_editing_mode in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_line_buffer in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_point in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_event_hook in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_sigwinch in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_signals in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_cleanup_after_signal() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_clear_signals() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_set_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_get_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_vi_editing_mode() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_emacs_editing_mode() in stdio.h,readline/readline.h,readline/history.h... yes
checking for replace_history_entry() in stdio.h,readline/readline.h,readline/history.h... yes
checking for remove_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for clear_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for RL_PROMPT_START_IGNORE in stdio.h,readline/readline.h,readline/history.h... yes
checking for RL_PROMPT_END_IGNORE in stdio.h,readline/readline.h,readline/history.h... yes
creating Makefile
$ make
compiling readline.c
linking shared-object readline.so
$ make install
/usr/bin/install -c -m 0755 readline.so /home/sky/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/x86_64-linux
installing default readline libraries
irb
1.9.3-p194 :001 >
You can see it is work fine for me.
1 - don't forget to install libedit-dev
# dpkg --get-selections| egrep '(readline|libedit)'
libedit-dev install # <= BSD PACKAGE, not GNU, but... it is work fine to me
libedit2 install # the same story as previous
libreadline-dev install
libreadline5 install
libreadline6 install
libreadline6-dev install
readline-common install
2 - uninstall pkg readline
$ rvm pkg uninstall readline
3 - go to $rvm_path/src/ruby-#{version}/ext/readline and do
$ ruby extconf.rb; make; make install
4 - forget about headache
My setup is ubuntu 11.10, RVM 1.10.2, ruby 1.9.3.
This readline problem was giving errors when running irb, and prevented running of the rails console due to the error:
'require': cannot load such file -- readline (LoadError)
The solution that worked for me was the one described by Bryan Larsen, i.e.
DO NOT pkg install readline, with or without --skip-autoreconf
Do the apt-get install that rvm requirements tells you to do, then
rvm --skip-autoreconf pkg uninstall readline
rvm remove 1.9.3
rvm install 1.9.3
Thx for the tip Bryan.
These steps fixed my problem (on a Lubuntu 12.04) after previously compiling ruby and continually getting the "compile readline missing" error anytime I ran:
sudo aptitude install build-essential openssl libreadline6 \
libreadline6-dev curl git-core zlib1g zlib1g-dev \
libssl-dev libyaml-dev libsqlite3-dev sqlite3 \
libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev \
automake libtool bison subversion
rvm pkg uninstall readline
rvm remove 1.9.3
rvm install 1.9.3
Ubuntu 12.04 here: the answers here helped, but were also misleading.
If you're using Ubuntu 12.04, DO NOT pkg install readline, with or without --skip-autoreconf. After you've done that, either readline or zlib will be broken no matter what combination of switches you give to rvm install 1.9.3.
To get it to work, do the apt-get install that rvm requirements
tells you to do, do a pkg uninstall readline
and then do a simple rvm remove 1.9.3; rvm install 1.9.3