つかぱい.com

つかぱいが思ったことを書いています。

pryをインストールしたらReadlineでうまく起動できなかった話

RubyのデバックようにPryをインストールして見ようかなと思ったのでそのメモ

tr;ld

pryをインストールするときに起動できなくて詰まったのだけど

原因としてはReadlineの問題だった。

brewで更新をかければ解消する。

pryのインストール方法

pryはbrewではなくgemでインストールします。 ドキュメントの生成もしたかったのであわせてpry-docもインストール

$ gem install pry pry-doc

これでインストール自体はできたのだけど実行しようとしたら以下の問題が出てきた

$ 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/pcuser/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': dlopen(/Users/pcuser/.rbenv/versions/2.6.0/lib/ruby/2.6.0/x86_64-darwin18/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
  Referenced from: /Users/pcuser/.rbenv/versions/2.6.0/lib/ruby/2.6.0/x86_64-darwin18/readline.bundle
  Reason: image not found - /Users/pcuser/.rbenv/versions/2.6.0/lib/ruby/2.6.0/x86_64-darwin18/readline.bundle

最初はrbenvにコマンドのシンボリックリンクがないせいかなと思ってrehashをかけてみた。

参考リンク:rbenv rehashは何をやっているのか?

とりあえずrehash

$ rbenv rehash

ただ後でエラーコードを見たらここに気がついた

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

怒られているのはReadlineの問題なのね

ということでReadlineの解消方法をググってみた。

結果これを試してみる

Macでawkを実行するとエラー: "dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib" となる問題の解決法

この記事はAwkだけど、結果的にReadlineの問題に触れているのでまあいいか

とりあえず実行

$ brew switch readline 7.0.5
Cleaning /usr/local/Cellar/readline/8.0.0_1
Cleaning /usr/local/Cellar/readline/6.3.8
Cleaning /usr/local/Cellar/readline/7.0.5
Cleaning /usr/local/Cellar/readline/7.0.3_1
Opt link created for /usr/local/Cellar/readline/7.0.5
$ pry
[1] pry(main)> 

うん、これで動いた。

今日はとりあえず問題を解決した

おわり