87

rails console由于此错误,我无法执行:

localhost:TwitterForZombies wiz$ rails c
/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `require': dlopen(/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib (LoadError)
  Referenced from: /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle
  Reason: image not found - /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `require'
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `<top (required)>'
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `require'
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

我已经通过自制软件安装了 readline。我想继续使用 rbenv 而不是 rvm。

感谢您阅读我的问题。

4

8 回答 8

278

我最近在使用自制软件和 libreadline.7.x.dylib / libreadline.6.x.dylib 时遇到了同样的问题

我通过运行解决了它:

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

来源:https ://github.com/rails/rails/issues/26658

于 2016-10-21T10:47:37.050 回答
58

Homebrew 很棒,但有时它与其他一些移动部件不匹配。

A在自动删除时brew update && brew upgrade引入,ruby 仍然依赖它。libreadline.7.x.dyliblibreadline.6.x.dylib

可能有更聪明的方法来解决这个问题,但蛮力对我有用:

$ rbenv uninstall 2.3.1
$ rbenv install 2.3.1
$ cd /path/to/my/app
$ bundle

以上假设存在 rbenv ruby-build,当然还有bundler; 替换2.3.1为您正在使用的任何版本的 ruby​​。

请注意,不同的自制管理库可能会出现类似的问题(例如,请参阅我自己的答案

于 2016-10-06T06:28:27.713 回答
26

我在 OSX、ruby2.3.​​0、rails5 上。添加gem 'rb-readline'到我Gemfile解决了这个问题。

于 2016-12-29T20:16:50.967 回答
21

我在 Ruby 2.1.0 和 rails 4.0 中遇到了同样的错误。在搜索和尝试了很多之后,终于它运行良好:) 这是我所做的:

rvm cleanup all
rvm autolibs enable
rvm install 2.1.0 

其他方式:

brew update
brew uninstall readline
brew install readline

autolibs 命令将强制 RVM 安装所有依赖项,因此您无需担心。

希望它有帮助。

于 2014-05-27T14:36:25.467 回答
20

正如 Sachin 所暗示的,安装 readline 然后重新安装 ruby​​ 是理想的方法 - 但 rbenv 的细节有点不同。鉴于您的文件路径,我猜您使用的是 Mac,因此以下内容应该有所帮助:

brew install readline ruby-build
env CONFIGURE_OPTS=--with-readline-dir=`brew --prefix readline` rbenv install 1.9.3-p286

这是从ruby​​-build Wiki和快速谷歌搜索中获取的。

于 2013-05-27T14:37:37.033 回答
8

使用mac,El Captain版本,可以通过做来修复

rvm reinstall your_ruby_version

(喜欢rvm reinstall ruby-2.3.1

希望这有帮助,祝你好运!

于 2016-11-14T13:56:07.560 回答
1

取自 github 用户 @enderahmetyurt(这是唯一对我有用的解决方案)。

解决方案:添加gem 'rb-readline'开发组中的 Gemfile并捆绑安装

对于愚蠢的“readline”错误,这是最简单的解决方案。

于 2017-07-07T04:29:33.920 回答
0

尝试安装 readline,然后重新安装你的 ruby

https://rvm.io/packages/readline/

于 2013-05-26T07:26:13.740 回答