概要
$ bundle exec rails console
を実行すると、
Running via Spring preloader in process 38930
~/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:
in `require': dlopen(~/.rbenv/versions/2.3.0/lib/ruby/2.3.0/x86_64-darwin15/readline.bundle, 9): Library not loaded:
/usr/local/opt/readline/lib/libreadline.6.dylib (LoadError)
Referenced from: ~/.rbenv/versions/2.3.0/lib/ruby/2.3.0/x86_64-darwin15/readline.bundle
Reason: image not found - ~/.rbenv/versions/2.3.0/lib/ruby/2.3.0/x86_64-darwin15/readline.bundle
とエラーを吐いた。
解決方法
stackoverflow様を参照
https://stackoverflow.com/questions/16756287/cannot-execute-rails-console-due-to-an-error-with-readline
他の人も下記で解決していたようなのでそれに倣う
$ ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
結果
ものの見事に解決!!
しかし、肝心のエラーの意味が理解できていない。
コメントを見てみると
A brew update && brew upgrade
brought inlibreadline.7.x.dylib
while automatically removinglibreadline.6.x.dylib
, which ruby was still relying on.
とある。
つまり、以前に実行していた brew update
によって自動的に libreadline.7.x.dylib
が導入され、
必要とされるlibreadline.6.x.dylib
が抹消されていたことが原因であった。
libreadline.6.x.dylib
については自分の知識外であったので何か補足できることがあれば追記していきたい。