Ответ 1
Пробежал через это сегодня, чтобы решить эту проблему:
brew rm -f readline
brew install readline
brew link readline --force
Надеюсь, это поможет.
Я недавно переустановил 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/[email protected]/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: @@[email protected]@/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
, который работал, но не решил мою проблему.
Пробежал через это сегодня, чтобы решить эту проблему:
brew rm -f readline
brew install readline
brew link readline --force
Надеюсь, это поможет.
Основываясь на комментарии к принятому ответу с более высоким голосом, чем ответ, это, по-видимому, самое популярное решение.
Похоже, что рельсы 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 для некоторого другого пакета, который, как я подозреваю, вполне мог бы стать виновником.
Получив много положительных отзывов о своем комментарии к сообщению @mauro_oto, я подумал, что отправлю это как ответ:
Для меня
cp /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
сделал трюк. Похоже, что рельсы 4.2.6 искали libreadline.6 вместо libreadline. Я, вероятно, должен был бы обозначить это, если честно. Поэтомуln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
более уместен. надеюсь, это поможет другим, кто все еще застрял!
Добавление gem 'rb-readline'
к моему Gemfile
исправило эту проблему для меня. См. https://github.com/ConnorAtherton/rb-readline.
Ничего из этого не сработало для меня. Я использую osx sierra. Это то, что сработало для меня.
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
Надеюсь, что это поможет кому-то там.
My 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/
)
Это решило мою проблему:
Замените libreadline. {Version}.dylib версией, для которой вы получаете ошибку:
ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib