Nie mogę wykonać z rails console
powodu tego błędu:
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>'
Zainstalowałem readline przez homebrew. Chciałbym nadal używać rbenv zamiast rvm.
Dziękuję za przeczytanie mojego pytania.
ruby-on-rails
ruby
ruby-on-rails-3
homebrew
rbenv
czarodziej
źródło
źródło
Odpowiedzi:
Ostatnio miałem ten sam problem z homebrew i libreadline.7.x.dylib / libreadline.6.x.dylib
Rozwiązałem to uruchamiając:
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
źródło: https://github.com/rails/rails/issues/26658
źródło
Homebrew jest świetny, ale od czasu do czasu nie gra dobrze z niektórymi innymi ruchomymi częściami.
A
brew update && brew upgrade
wprowadzonylibreadline.7.x.dylib
podczas automatycznego usuwanialibreadline.6.x.dylib
, na którym Ruby wciąż polegał.Mogą istnieć sprytniejsze sposoby rozwiązania problemu, ale brutalna siła zadziałała:
$ rbenv uninstall 2.3.1 $ rbenv install 2.3.1 $ cd /path/to/my/app $ bundle
Powyższe zakłada obecność rbenv
ruby-build
i oczywiściebundler
; zastąp2.3.1
dowolną wersją Rubiego, której używasz.Pamiętaj, że podobne problemy mogą wystąpić w przypadku różnych bibliotek zarządzanych przez homebrew ( zobacz na przykład moją własną odpowiedź )
źródło
gem install bundler
po rbenv.brew update && brew upgrade
ponownym uruchomieniu ?brew upgrade
JAKIEKOLWIEK starsza biblioteka zastępuje jakąkolwiek starszą wersję nowszą wersją, są PEWNE szanse, że inne programy w twoim systemie będą narzekać.Jestem na OSX, ruby2.3.0, rails5. Dodanie
gem 'rb-readline'
do mojegoGemfile
rozwiązanego problemu.źródło
Otrzymałem ten sam błąd z Ruby 2.1.0 i rails 4.0. Po wielu poszukiwaniach i próbach, w końcu działa dobrze :) Oto co zrobiłem:
rvm cleanup all rvm autolibs enable rvm install 2.1.0
Inne sposoby:
Polecenie autolibs wymusi zainstalowanie RVM wszystkich zależności, więc nie musisz się tym martwić.
Mam nadzieję, że to pomocne.
źródło
cleanup rvm
. tylkoreinstall
wersja rubinowa.Jak zasugerował Sachin, instalacja readline, a następnie ponowna instalacja ruby jest idealnym podejściem - ale szczegóły są nieco inne w przypadku rbenv. Biorąc pod uwagę ścieżki do plików, domyślam się, że korzystasz z komputera Mac, więc poniższe wskazówki powinny pomóc:
brew install readline ruby-build env CONFIGURE_OPTS=--with-readline-dir=`brew --prefix readline` rbenv install 1.9.3-p286
To zostało zaczerpnięte z Ruby-build Wiki i szybkiego wyszukiwania w Google.
źródło
bundle install
pokazało wiele ostrzeżeń, takich jak „Ignorowanie bcrypt-3.1.11, ponieważ jego rozszerzenia nie są zbudowane”. Jak sugerowano w odpowiedziach na to pytanie ,gem pristine --all
naprawiono wszystkie te błędy naraz.Używając mac,
El Captain
wersja, można naprawić po prostu robiąc(jak
rvm reinstall ruby-2.3.1
)Mam nadzięję, że to pomogło, powodzenia!
źródło
rvm reinstall $(rvm current)
wzięte z github użytkownika @enderahmetyurt (to jedyne rozwiązanie, które działało dla mnie).
Rozwiązanie: Dodaj
gem 'rb-readline'
do swojego Gemfile w grupie deweloperskiej i zainstaluj pakiet .To najłatwiejsze rozwiązanie dla głupich błędów „readline”.
źródło
źródło