web-dev-qa-db-ja.com

rails libreadlineが原因でコンソールがロードされない

私は最近、gem(Ruby-debug-ide)をインストールしたかったので、Ruby 2.1.2のように再インストールしました。

Sudo rvm reinstall 2.1.2 --disable-binary --with-gcc=gcc-4.2

それ以来、次のエラーのため、bundle exec Rails cを使用してコンソールをロードできません。

/Users/ohad/.rvm/gems/Ruby-2.1.2@aaa/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': dlopen(/Users/ohad/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/x86_64-darwin13.0/readline.bundle, 9): Library not loaded: @@HOMEBREW_PREFIX@@/opt/readline/lib/libreadline.6.dylib (LoadError)
  Referenced from: /Users/ohad/.rvm/rubies/Ruby-2.1.2/lib/Ruby/2.1.0/x86_64-darwin13.0/readline.bundle

brew uninstall readlinebrew install --build-from-source readlineを試しましたが、うまくいきましたが、私の問題は解決しませんでした。

70
WebQube

今日これを走って、それを解決するために私がやった:

brew rm -f readline

brew install readline

brew link readline --force

それが役に立てば幸い。

編集:最近この問題に遭遇しました(Rubyのダウングレード後)。

ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib

72
mauro_oto

回答よりも多くの賛成票で受け入れられた回答に対するコメントに基づいて、これは最も人気のあるソリューションのようです。

Rails 4.2.6はlibreadlineではなくlibreadline.6を探していました。したがって、シンボリックリンクを作成する必要があります。

ln -s /usr/local/opt/readline/lib/libreadline.dylib \
/usr/local/opt/readline/lib/libreadline.6.dylib 

これがまだ立ち往生している他の人を助けることを願っています!

Rubyを再インストールすることで同じ問題を解決できました。 Homebrew側では、readlineを(ソースからでも)再インストールしても解決しませんでした。

私はRVMを使用しているので、これは私のためにそれをソートしました:

rvm reinstall 2.3.1

Homebrewは最近、他のパッケージのためにreadline v7を導入したかもしれないと思う。

51
paws

@mauro_otoの投稿に対する私のコメントに対して多くの肯定的なフィードバックを得た後、これを回答として投稿すると思いました。

私のために cp /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylibトリックをしました。 Rails 4.2.6はlibreadlineではなくlibreadline.6を探していました。正直に言うとシンボリックリンクしているはずです。したがってln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylibの方が適切です。これがまだ立ち往生している他の人を助けることを願っています!

16
califrench

gem 'rb-readline'Gemfileに追加すると、この問題が修正されました。 https://github.com/ConnorAtherton/rb-readline を参照してください。

16
Meekohi

これらのすべてが私にとってはうまくいきませんでした。 osx sierraを使用しています。これは私のために働いたもの。

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib

これが誰かに役立つことを願っています。

9
theterminalguy

私のENV:Ruby:2.2.1、Rails:4.2.1、macOS Sierra 10.12.4;

以下のコマンドは、私と同僚のために機能します:

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib

6
张艳军

Homebrewを使用したOSXでは、アクティブにするreadlineバージョンを指定できます。例えば.

brew switch readline 6.3.8

(おそらく/usr/local/Cellar/readline/にインストールされます)

2
BF4

これは私の問題を解決しました:

Libreadline。{version} .dylibを、エラーが発生しているバージョンに置き換えます。

ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
2
Santosh Mohanty

同様の問題が発生していましたが、バージョンが更新されました。私が持っていたエラーは:

dlopen(/Users/juanjo/.rvm/rubies/Ruby-2.5.3/lib/Ruby/2.5.0/x86_64-darwin18/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
  Referenced from: /Users/juanjo/.rvm/rubies/Ruby-2.5.3/lib/Ruby/2.5.0/x86_64-darwin18/readline.bundle
  Reason: image not found - /Users/juanjo/.rvm/rubies/Ruby-2.5.3/lib/Ruby/2.5.0/x86_64-darwin18/readline.bundle

重要な部分はLibrary not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib

見つめている /usr/local/opt/readline/lib/私がインストールしたのを見たlibreadline.8.dylib、7ではありません。

他の答えに導かれて私の問題を解決するために、私は次のことをしなければなりませんでした:

ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib

言い換えると: ln -s /.../[libreadline you have] /.../[libreadline you need]

1