Rails控制台无法加载

18

当尝试启动rails console时,我一直收到以下错误信息

Users/rigelstpierre/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `require': dlopen(/Users/rigelstpierre/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.4.0/readline.bundle, 9): Library not loaded: /Users/rigelstpierre/.rvm/usr/lib/libreadline.6.2.dylib (LoadError)
  Referenced from: /Users/rigelstpierre/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.4.0/readline.bundle
  Reason: image not found - /Users/rigelstpierre/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.4.0/readline.bundle
    from /Users/rigelstpierre/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
    from /Users/rigelstpierre/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands/console.rb:3:in `require'
    from /Users/rigelstpierre/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands/console.rb:3:in `<top (required)>'
    from /Users/rigelstpierre/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands.rb:38:in `require'
    from /Users/rigelstpierre/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands.rb:38:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

有什么想法吗?Rails 3.2.2 应用程序

8个回答

25

可能安装了多个版本的 readline。

尝试以下操作:

brew link readline --force

1
尝试过了,还是没有任何反应。 - rigelstpierre
抱歉,我的表述不够清晰。那个命令返回了什么?我怀疑你的 readline 安装可能存在问题。 - Ron Crosler
我阅读了博客文章,然后运行了“brew link readline”,这样就创建了符号链接。 '/Users/rigelstpierre/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `require': dlopen(/Users/rigelstpierre/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.4.0/readline.bundle, 9): Library not loaded: /Users/rigelstpierre/.rvm/usr/lib/libncurses.5.dylib (LoadError) Referenced from: /Users/rigelstpierre/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.4.0/readline.bundle Reason: no suitable image found. Did find:' - rigelstpierre
5
我不得不执行 brew link readline --force 才能使它正常工作。谢谢。 - Surya

15

在其他地方查找时,没有任何重新链接选项起作用。建议重新安装rvm(这似乎很麻烦)。然而,仅仅将readline添加到Gemfile中对我来说已经足够解决问题:

gem 'rb-readline'

对我有用。谢谢! - guero64

15

前几天我遇到了这个问题。你可以尝试重新安装/编译Ruby。在我的情况下,问题出现在从El Capitan更新到Sierra时。

所以取决于你的管理器:

RVM

rvm reinstall 2.3.0

Rbenv

rbenv uninstall 2.3.0
rbenv install 2.3.0

asdf

asdf uninstall ruby 2.3.0
asdf install ruby 2.3.0

没问题。但是伙计,我花了很长时间才做到这一点。我基本上尝试了这个页面上的其他解决方案,但都没有起作用... - Lukasz Muzyka

12

这是由于安装了多个readline版本(可能是因为您最近运行了brew update)。Ron所说的是正确的。您可以通过运行brew link readlinebrew link readline --force来修复它。

如果仍然不起作用,请找到哪个readline,然后移动到readline文件夹,然后删除您不需要的版本(或者通过运行brew update安装的版本)。然后再次运行brew link readline


4
这个方法很有效,删除了/usr/local/Cellar/readline中的新版本,然后运行上述命令,又可以正常使用了! - L457

5

在我的macOS Sierra系统中,brew link readlinebrew link readline --force 命令无法工作,而且我最近已经运行了brew update。但是只要按照以下步骤进行,rails console 就可以正常工作:

rvm reinstall 2.3.1


3
重新安装了readline后,我仍然无法加载rails console。不过,重新安装ruby后问题得到解决。
rvm reinstall 1.9.3

提示:我使用的是OSX El Capitan操作系统


1
在我的情况下,readline的版本号不同,并且我缺少了 libreadline.7.dylib。使用Homebrew进行链接和取消链接都没有帮助。然而,以下操作成功了:
~$ cd /usr/local/opt/readline/lib
/usr/local/opt/readline/lib$ ls -l
total 1448
-r--r--r--  1 ceasar  staff   40396 Mar 22 11:35 libhistory.8.0.dylib
lrwxr-xr-x  1 ceasar  staff      20 Dec 19 13:07 libhistory.8.dylib -> libhistory.8.0.dylib
-r--r--r--  1 ceasar  staff   45848 Dec 19 13:07 libhistory.a
lrwxr-xr-x  1 ceasar  staff      20 Dec 19 13:07 libhistory.dylib -> libhistory.8.0.dylib
-rw-r--r--  1 ceasar  staff  239260 Mar 22 11:35 libreadline.8.0.dylib
lrwxr-xr-x  1 ceasar  staff      21 Dec 19 13:07 libreadline.8.dylib -> libreadline.8.0.dylib
-r--r--r--  1 ceasar  staff  406384 Dec 19 13:07 libreadline.a
lrwxr-xr-x  1 ceasar  staff      21 Dec 19 13:07 libreadline.dylib -> libreadline.8.0.dylib
drwxr-xr-x  3 ceasar  staff      96 Mar 22 11:35 pkgconfig
/usr/local/opt/readline/lib$ ln -s libreadline.dylib libreadline.7.dylib

1
在macOS Sierra系统中,我遇到了与homebrew和libreadline相关的问题, 我尝试了brew link readlinebrew link readline --forcebrew update, 但都没有成功,然后我找到了另一种解决方案来解决我的问题。
homebrew所需的libreadline链接存在问题,无法通过brew命令进行链接。
创建符号链接解决了我的问题。
请尝试创建符号链接。希望这能解决你的问题。

1
欢迎来到 Stack Overflow!没有解释为什么这会有帮助的情况下,“运行此”答案是没有用处的。 - Joe C
好的,我会注意的。 - Mutafaf
@JoeC 我同意。应该强制要求回答附带最少的解释。 - Nick Res
这确实解决了我的问题,但没有任何解释。 - noctrnal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接