консоль rails не загружается из-за libreadline


Я недавно переустановил ruby 2.1.2, так как я хотел установить драгоценный камень (ruby-debug-ide)

sudo rvm reinstall 2.1.2 --disable-binary --with-gcc=gcc-4.2

С тех пор я не могу загрузить свою консоль с помощью bundle exec rails c из-за следующей ошибки :

/Users/ohad/.rvm/gems/ruby-2.1.2@aaa/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': dlopen(/Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle, 9): Library not loaded: @@HOMEBREW_PREFIX@@/opt/readline/lib/libreadline.6.dylib (LoadError)
  Referenced from: /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle

пробовал brew uninstall readline и brew install --build-from-source readline, который работал, но не решить мою проблему.

8   51   2014-08-31 15:29:27

8 ответов:

наткнулся на это сегодня, чтобы решить это я сделал:

brew rm -f readline

brew install readline

brew link readline --force

надеюсь, что это помогает.

основываясь на комментарии к принятому ответу с большим количеством голосов, чем ответ, это, по-видимому, самое популярное решение.

похоже, что rails 4.2.6 искал libreadline.6 вместо libreadline. Так что просто нужно создать символическую ссылку.

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

надеюсь, что это поможет другим, кто все еще застрял!

я смог решить ту же проблему, переустановив Ruby. На доморощенной стороне переустановка readline (даже из источника) не помогла.

Я использую RVM, поэтому это сортировало его для меня:

rvm reinstall 2.3.1

Я думаю, что Homebrew, возможно, недавно вытащил readline v7 для какого-то другого пакета, который, как я подозреваю, вполне может быть виновником.

добавлять gem 'rb-readline' мой Gemfile исправлена эта проблема для меня. См.https://github.com/ConnorAtherton/rb-readline.

получив много положительных отзывов на мой комментарий к сообщению @mauro_oto, я подумал, что опубликую это в качестве ответа:

для меня cp /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib сделал свое дело. Похоже, rails 4.2.6 искал libreadline.6 вместо libreadline. Я, вероятно,должен был симулировать его, чтобы быть честным. Так что ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib более уместен. надеюсь, это поможет другим, кто все еще застрял!

все это не сработало для меня. Я использую osx sierra. Это то, что сработало для меня.

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

надеюсь, что это поможет кому-то там.

мой ENV: Ruby: 2.2.1, Rails: 4.2.1, macOS Sierra 10.12.4;

ниже команда работает для меня и моего коллегу:

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

в OSX с помощью homebrew вы можете указать, какая версия readline активна. например,

brew switch readline 6.3.8

(скорее всего, он установлен в /usr/local/Cellar/readline/)