Проблемы с консолью rails, RVM и readline

Я установил rvm, чтобы убедиться, что моя локальная версия ruby ​​для разработки совпадает с версией моего сервера для конкретного приложения, над которым я работаю (ruby 1.8.7). Я сделал это и установил ruby ​​​​1.8.7 в порядке. Однако, когда я пытаюсь запустить консоль rails, я получаю эту ошибку:

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

Я прочитал заметки на странице, на которую ссылается ошибка (http://rvm.beginrescueend.com/packages/readline/), и следовал инструкциям, которые в основном включают установку readline, удаление ruby ​​1.8.7, а затем установку ruby. 1.8.7 снова с поддержкой readline. (на самом деле на этой странице в качестве примера используется ruby ​​​​1.9.2, но я предполагаю, что он должен работать и с 1.8.7. Возможно, это не так).

Но я все еще получаю ту же ошибку. Кто-нибудь еще прошел через это и понял это?
Благодарен за любой совет - Макс

РЕДАКТИРОВАТЬ - я использую Ubuntu 9.10, кстати, на случай, если это уместно.

РЕДАКТИРОВАТЬ - вот мой вывод для rvm info, как указано ниже:

$ 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:       ""

person Max Williams    schedule 21.12.2010    source источник
comment
Как насчет добавления вывода rvm info к вашему вопросу выше?   -  person the Tin Man    schedule 23.12.2010
comment
сделано, спасибо (см. выше)   -  person Max Williams    schedule 29.12.2010


Ответы (7)


У меня была аналогичная проблема с 1.9.2 на Ubuntu 10.04, но симптомы были идентичными. Чтобы заставить его работать:

rvm pkg install readline

или до RVM версии 1.6.32 вам потребуется следующая команда

rvm package install readline

Потом:

apt-get install ncurses-dev

А затем следуя их инструкциям на странице 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

На самом деле я установил систему rvm на сервер, поэтому мне нужно было сделать это:

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

После этого я смог получить полный доступ к консоли.

person Geoff Lanotte    schedule 23.01.2011
comment
Спасибо Джеффу Ланотту. Его решение также работает с Ruby 1.9.2-p3 + RVM + Rails 3.0.6. - person prikha; 09.04.2011
comment
Спасибо за исправление. Меня устраивает. Единственное, что другие люди могут захотеть проверить, это путь (при условии, что вы вырезаете и вставляете). Мой путь немного отличался от пути Джеффа. Кроме того, это сработало. Спасибо. - person 9monkeys; 23.05.2011
comment
для меня мне пришлось использовать pkg, а не package. используйте rvm pkg install readline - person edwardsharp; 10.11.2011
comment
Спасибо, я обновил его, чтобы обрабатывать новое имя команды, а также старое имя команды. - person Geoff Lanotte; 10.11.2011
comment
Не уверен, что мне не хватает. Убунту 11.10 с рубином 1.9.3. и make install ничего не делает. ~/.rvm/src/ruby-1.9.3-p0/ext/readline$ ruby extconf.rb -- --with-readline-dir="$HOME/.rvm/usr" 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 ~/.rvm/src/ruby-1.9.3-p0/ext/readline$ make install make: Nothing to be done for 'install'. - person Antony; 20.11.2011
comment
Обновление: проблема решена для меня 11.10. Я просто последовал другому вопросу SO stackoverflow.com/questions/8176076/ Недостающий ключ здесь - установить libreadline-dev и установить --with-readline-dir= /usr - person Antony; 20.11.2011
comment
Ubuntu 11.10 У меня было несколько незначительных проблем, поэтому я опубликовал ответ, который решает все из них. - person Michael Durrant; 21.01.2012
comment
Я получаю эту ошибку при установке readline Ошибка при запуске autoreconf -is --force, пожалуйста, прочитайте /home/hieund/.rvm/log/readline/autoreconf.log . Как исправить? - person emeraldhieu; 01.03.2012

Запустите команду

rvm requirements

Он показывает требования и зависимости. Установите их и переустановите рубин на rvm

rvm remove 1.9.2
rvm install 1.9.2

Оно работает!

person Sayuj    schedule 10.01.2012
comment
спасибо, запуск rvm requirements и проверка необходимых пакетов Linux помогли и в Ubuntu 12.04. - person David O'Meara; 22.10.2012
comment
да, это сработало отлично; в моем случае я выдал (1) $ sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl ... (2) $ rvm переустановить все --force - person aercolino; 30.10.2012

У меня возникла такая же проблема, и я решил ее. Я проверяю http://rvm.beginrescueend.com/packages/readline/ Пожалуйста, проверьте, следуйте 2 вещи:

  1. sudo aptitude install libreadline5-dev libncurses5-dev используйте libreadline6-dev, если у вас новая версия.
  2. ruby extconf.rb -- --with-readline-dir='/home/youruser/.rvm/usr/include/readline' убедитесь, что у вас есть файлы библиотеки readline в указанном вами каталоге with-readline-dir.
person Race    schedule 23.11.2011

Вы пытались использовать этот учебник, чтобы использовать установку readline с помощью brew?

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

person shingara    schedule 21.12.2010
comment
Я не слышал о Brew, но похоже, что это менеджер пакетов для OSX. Я использую Ubuntu 9.10 - извините, что не упомянул об этом в своем OP. - person Max Williams; 23.12.2010

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.

Если вы перейдете по этой ссылке, вы найдете инструкции по устранению этой проблемы. Что сработало для меня, так это первый шаг, удаление всех установленных вручную пакетов:

 $ rm -rf $rvm_path/usr

а потом

$ rvm requirements
$ rvm reinstall 1.9.3

Надеюсь, что это работает!

person geekazoid    schedule 02.10.2012

Пробовал гем установить rb-readline

Все еще не работает. Итак, запустил irb и сделал запрос на чтение. Сообщение об ошибке помогло.

    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

Так что проблема в моем случае заключалась во всей libreadline* в /usr/local/lib. Я установил readline из исходного кода, и это все испортило.

Следовал инструкциям здесь, чтобы исправить это. http://vkarthickeyan.wordpress.com/2012/02/16/mysql-symbol-lookup-error-usrlocalliblibreadline-so-6-undefined-symbol-up/

person Sudhir    schedule 22.11.2012

У меня была эта проблема с Ruby 2.1.3. Обновление RVM, а затем переустановка Ruby сработало для меня:

rvm get stable
rvm reinstall 2.1.3
person oli    schedule 24.10.2014