Help us understand the problem. What is going on with this article?

rails console で readline がないよって怒られたときの対処例

More than 1 year has passed since last update.

こんにちは。Rails勉強中の @koshi_life です。

rails console でコードの確認がインタラクティブに確認できて便利だと聞いて、Rails consoleしたら readline ってライブラリがないぜってコケたので、ライブラリの設定メモ

  • 環境
    • Mac OS High Sierra
    • homebrew インストール済み

エラー内容

$ rails c
Traceback (most recent call last):
    14: from bin/rails:4:in `<main>'
    13: from bin/rails:4:in `require'

    ..略..

     1: from /Users/kenjikoshikawa/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/completion.rb:10:in `<top (required)>'
/Users/kenjikoshikawa/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/completion.rb:10:in `require': dlopen(/Users/kenjikoshikawa/.rbenv/versions/2.6.0/lib/ruby/2.6.0/x86_64-darwin17/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
  Referenced from: /Users/kenjikoshikawa/.rbenv/versions/2.6.0/lib/ruby/2.6.0/x86_64-darwin17/readline.bundle
  Reason: image not found - /Users/kenjikoshikawa/.rbenv/versions/2.6.0/lib/ruby/2.6.0/x86_64-darwin17/readline.bundle

readline入ってないと思い、 brew install してみる。

$ brew install readline
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).

..略..

Warning: readline 8.0.0 is already installed and up-to-date

既に8.0.0のreadlineはインストール済みとのことだったが、 /usr/local/opt/readline/lib/libreadline.7.dylib には存在しないとのことなので、参考リンクを参考にシンボリックリンクを張る。

$ ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
$ bundle install --path vendor/bundle
$ rails c
irb(main):001:0> 

できた。
rails console とても便利ですね。

参考: https://qiita.com/kanpou0108/items/0fe67e313c03e87277e7

koshilife
スタートアップでサーバサイドエンジニアをやっています。 興味の赴くままにクラウド(GCP,AWS)、フロントエンドも齧っていきます。
waaq
日程調整自動化ツール waaq Linkを運営しています。「仕事に自由を。」をミッションに掲げたスタートアップです。
https://waaq.jp/company
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