2013-05-26 2 views
79

Я не могу выполнить rails console из-за этой ошибки:Невозможно выполнить «Рельсы консоли» из-за ошибки с Readline

localhost:TwitterForZombies wiz$ rails c 
/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `require': dlopen(/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib (LoadError) 
    Referenced from: /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle 
    Reason: image not found - /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle 
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>' 
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `require' 
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `<top (required)>' 
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `require' 
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

Я установил Readline через самогон. Я бы хотел использовать rbenv вместо rvm.

Спасибо, что прочитали мой вопрос.

+0

Возможный дубликат [rails console не загружается из-за libreadline] (http://stackoverflow.com/questions/25591527/rails-console-doesnt-load-due-to-libreadline) – Santhosh

ответ

20

Как Сэчины намекнули, установку Readline, а затем переустановить рубин идеального подход - но детали немного отличаются для rbenv. Учитывая ваши пути к файлам, я предполагаю, что вы на Mac, так что следующее должно помочь:

brew install readline ruby-build 
env CONFIGURE_OPTS=--with-readline-dir=`brew --prefix readline` rbenv install 1.9.3-p286 

Это было взято из the ruby-build Wiki и быстрый поиск Google.

+0

не забудьте перефразировать после этого – iGbanam

+0

должен быть принятым ответом – m02ph3u5

+1

После повторной установки существующей версии Ruby с readline, запуск такой команды, как 'bundle install', показал мне много предупреждений, таких как« Игнорирование bcrypt-3.1.11 потому что его расширения не построены ». Как было предложено в ответах на [этот вопрос] (http://apple.stackexchange.com/questions/147939/ruby-on-os-x-10-9-ignoring-gems-because-extensions-are-not-built), 'gem pristine -all' исправил все эти ошибки сразу. –

21

У меня такая же ошибка с Ruby 2.1.0 и rails 4.0. После поиска и пытается много, наконец, он работает хорошо :) Вот что я сделал:

rvm cleanup all 
rvm autolibs enable 
rvm install 2.1.0 

Другие способы:

brew update 
brew uninstall readline 
brew install readline 

Команда autolibs вынудит RVM установить все зависимости, так что вы не Не нужно беспокоиться об этом.

Надеюсь, это полезно.

+1

вам может не понадобиться 'cleanup rvm'. просто переустановите рубиновую версию. – Swaps

49

Homebrew отлично, но время от времени он не играет хорошо с некоторыми другими движущимися частями.

A brew update && brew upgrade было отправлено libreadline.7.x.dylib при автоматическом удалении libreadline.6.x.dylib, в котором рубин все еще полагался.

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

$ rbenv uninstall 2.3.1 
$ rbenv install 2.3.1 
$ cd /path/to/my/app 
$ bundle 

выше предполагает наличие rbenv-х ruby-build и, конечно же, bundler; замените 2.3.1 любой версией рубина, который вы используете.

Пожалуйста, обратите внимание, что подобные проблемы могут возникнуть с различными доморощенными управляемыми библиотеками (see my own answer to this, for example)

+0

Если бы только то, что случилось со мной, интересно, не существует ли какой-то возможности для Homebrew, чтобы заметить, что некоторые библиотеки связаны с более старыми версиями некоторых, которые поставляются в Homebrew? – slhck

+2

Это работало для меня в El Capitan с пакетом 'gem install bundler' после установки rbenv. – handwovensole

+0

Это решение работает! – chinloong

271

Я была такая же проблема в последнее время с доморощенным и libreadline.7.x.dylib/libreadline.6.x.dylib

Я решил его командой:

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib 

источник: https://github.com/rails/rails/issues/26658

+0

Это сработало и для меня. – maicher

+1

Какой взлом :) Но все работает отлично, пока: D Спасибо! – haslo

+1

Отлично. оно работает. Но .. это безопасно? :) – skywinder

5

Использование макинтош, El Captain версии, можно исправить, просто делая

rvm reinstall your_ruby_version 

(как rvm reinstall ruby-2.3.1)

Надеется, что это помогает, удачи!

+0

Это все, что мне нужно было сделать. – Pistos

20

Я на OSX, ruby2.3.0, rails5. Добавление gem 'rb-readline' к моему Gemfile исправил эту проблему.

+1

gem rb-readline работал для меня. Я добавил его в: development,: test group - хорошее быстрое исправление! – tnum

0

взято из github user @enderahmetyurt (это единственное решение, которое сработало для меня).

gem 'rb-readline' в ваш Gemfile в группа разработчиков и комплект установить.

Это самое простое решение для глупых ошибок «readline».