консоль 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 ответов:
наткнулся на это сегодня, чтобы решить это я сделал:
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/)
Comments