[Ruby] readline に対して Library not loaded とエラーが発生する場合の対処
readline の LoadError が発生しています。
症状
例えば pry
を実行すると、下記のエラーが表示されます。
% pry
Sorry, you can't use Pry without Readline or a compatible library.
Possible solutions:
* Rebuild Ruby with Readline support using `--with-readline`
* Use the rb-readline gem, which is a pure-Ruby port of Readline
* Use the pry-coolline gem, a pure-ruby alternative to Readline
/Users/****/.rbenv/versions/2.4.5/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/Users/****/.rbenv/versions/2.4.5/lib/ruby/2.4.0/x86_64-darwin18/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
対処
今回は直前に実行した brew upgrade readline
が原因と考えられるので、ruby をインストールし直します。
rbenv, ruby-build のバージョンがあがっていることを念のため確認しておきます。
% brew update
% brew doctor
% brew upgrade rbenv ruby-build
現在利用している ruby のバージョンとインストール可能なバージョンを調査します。
% ruby -v
% rbenv install -l | grep -E "^ 2"
該当するバージョンをインストールし直します。
% rbenv uninstall 2.4.5
% RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl) --with-iconv-dir=$(brew --prefix libiconv)" rbenv install 2.4.5
設定、リハッシュ、確認をしておきます。
% rbenv global 2.4.5
% rbenv rehash
% rbenv versions