4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails consoleがreadlineの原因でうまく読み込めなかった

Last updated at Posted at 2019-02-02

環境

・macOS Mojave(10.14.3)
・Ruby 2.6.0
・Rails 5.2.2

ふとある日、rails consoleからエラーが返されるようになった。

$ rails console
        ・
        ・
        ・
dlopen(/Users/user/.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/user/.rbenv/versions/2.6.0/lib/ruby/2.6.0/x86_64-darwin18/readline.bundle
  Reason: image not found - /Users/user/.rbenv/versions/2.6.0/lib/ruby/2.6.0/x86_64-darwin18/readline.bundle

とりあえずざっとバックトレースを読んでいく。
Load Errorreadline.bundle
臭いますね、正常に読み込めてない様子。

別機Ubuntu18.04にクローンして動かしてみましたが問題なく動きましたので、
問題があるのはこのマシンだと思いました。

Google先生に聞いてみましたが出てくるのはgem 'rb-readline'をGemfileに追記してbundle installするようにといった記事が・・・。
このマシンの問題なのでGemfileに追記する方法はとりあえずパスすることに。

原因と解決方法

Homebrewにインストールされていたreadlineが更新されたことが原因でした。

$ brew info readline
readline: stable 8.0.0 (bottled) [keg-only]
Library for command-line editing

/usr/local/Cellar/readline/7.0.5 (46 files, 1.5MB) 
  Poured from bottle on 2018-08-12 at 14:38:05
/usr/local/Cellar/readline/8.0.0 (48 files, 1.5MB)
  Poured from bottle on 2019-01-31 at 01:03:39
・
・
・

以前のバージョンにロールバックをします

$ brew switch readline 7.0.5
Cleaning /usr/local/Cellar/readline/8.0.0
Cleaning /usr/local/Cellar/readline/7.0.5
Opt link created for /usr/local/Cellar/readline/7.0.5

無事動くように。

$ rails c
Loading development environment (Rails 5.2.2)
irb(main):001:0>

原因の発端はHomebrewのパッケージをごっそり更新したことでした。😔

追記)
Ruby 2.6.0ではreadline8.0.0が動かず、
Ruby 2.6.1にすることで動きました。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?