rbenv でインストールした irb で readline が効かなくなったときにやったこと
rbenv は Homebrew でインストールしています。たぶん、OS アップグレードか何かのタイミングで、irb のキー移動や補完が効かなくなっていたので、readline 関係の問題だろうということで調べた結果、こちらの手順で治りました。
brew reinstall rbenv ruby-build readline
- インストールされているバージョンを
rbenv versions
で確認し、すべてrbenv uninstall
- 改めて
rbenv install VERSION
[Ace] $ rbenv install 2.7.0
...
Installing ruby-2.7.0...
ruby-build: using readline from homebrew
どうでもいい補足
readline ライブラリは補完やヒストリーを実現するための便利なライブラリですが、ライセンスが GPLv3 であるため、Mac OS X では NetBSD 由来の libedit がインストールされており、libreadline は libedit へのシンボリックリンクになっています。
$ ls -la /usr/lib/libreadline.dylib
lrwxr-xr-x 1 root wheel 15 2 2 2019 /usr/lib/libreadline.dylib -> libedit.3.dylib
しかし、少なくとも数年前までは libedit にはいくつかの問題があり、ユーザーがおのおの readline をインストールして有効にしている、と認識しています。
もっとも、最近は Mac OS も積極的にアップグレードしていないので、状況は変わってるかもしれない。