Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

rails c がLoadErrorになった時の解消法

More than 1 year has passed since last update.

現象

railsで開発をしていて、rails c,rails consoleを打った時に何故か以下のエラーが。

dlopen( ~/.rbenv/versions/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
  Referenced from: ~/.rbenv/versions/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/readline.bundle
  Reason: image not found - ~/.rbenv/versions/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/readline.bundle

対応

Gemfileにgem 'rb-readline' を追加してインストールすれば治る模様。
以下参考になりました
rails consoleでreadline(LoadError)が出た場合の対処
rails consoleコマンドがLoadErrorでエラーになったときの解消法

Gemfileの編集

Gemfile
~
gem 'rb-readline'
~

インストール

$ bundle install

再度実行

$ rails c

無事成功。

Loading development environment (Rails 5.1.6)
irb(main):001:0> 

原因

Homebrewにインストールされていたreadlineを更新しちゃったことが原因っぽい。
以下の記事が参考になりました。
Rails consoleがreadlineの原因でうまく読み込めなかった

$ brew info readline
/usr/local/Cellar/readline/7.0.3_1 (46 files, 1.5MB)
  Poured from bottle on 2018-05-19 at 14:48:10
/usr/local/Cellar/readline/8.0.0_1 (48 files, 1.5MB)
  Poured from bottle on 2019-06-06 at 21:32:09

前のバージョンに戻しても上手くいくようです。

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

再度実行して成功。

$ rails c
Running via Spring preloader in process 584
Loading development environment (Rails 5.1.6)
irb(main):001:0>
akizora
SIer系企業から転職し事業会社でWebエンジニアとして仕事をしています。 業務では aws/PHP/Java/Python 書いています。 プライベートではRuby on Rails/Vue.js勉強中です。 「あきぞらブログ」運営しています。
https://akizora.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away