Ruby on rails 在3.1中尝试加载rails控制台时出错

Ruby on rails 在3.1中尝试加载rails控制台时出错,ruby-on-rails,console,ruby-on-rails-3.1,Ruby On Rails,Console,Ruby On Rails 3.1,在3.1中尝试加载rails控制台时出现以下错误。为什么我会得到这个?我做错什么了吗 /home/brettlee/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError) from /home/brettlee/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/com

在3.1中尝试加载rails控制台时出现以下错误。为什么我会得到这个?我做错什么了吗

/home/brettlee/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError)
from /home/brettlee/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
from /home/brettlee/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands/console.rb:3:in `require'
from /home/brettlee/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands/console.rb:3:in `<top (required)>'
from /home/brettlee/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands.rb:37:in `require'
from /home/brettlee/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands.rb:37:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
/home/brettle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/completion.rb:9:in'require':没有要加载的文件--readline(LoadError)
from/home/brettle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/completion.rb:9:in`'
from/home/brettle/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands/console.rb:3:in'require'
来自/home/brettle/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands/console.rb:3:in`'
from/home/brettle/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands.rb:37:in'require'
from/home/brettle/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.0/lib/rails/commands.rb:37:in`'
来自脚本/rails:6:in'require'
来自脚本/rails:6:in`'

编辑:Bryan是对的-只要先尝试安装libncurses和libreadline,很有可能它自己就能工作。如果这不起作用,您可能需要重新安装整个ruby

非常常见的错误-这意味着您缺少运行console所需的一些库

应该告诉你如何修复它

简而言之,请尝试使用以下命令安装libncurses&readline(我从您的目录结构猜您正在使用Ubuntu。如果是其他不使用apt-get的内容,请相应更改)

如果这不起作用,那么在安装readline包之后,您需要通过rvm重新安装ruby 1.9.2。不要卸载通过apt get through安装的libncurses/readline软件包-您仍然需要它们

rvm package install readline
rvm remove 1.9.2
rvm install 1.9.2 --with-readline-dir=$rvm_path/usr
ruby ~/.rvm/src/ruby-1.9.2-p290/readline/ext/extconf.rb
cd ~/.rvm/src/ruby-1.9.2-p290/readline/ext/
sudo make

希望这有帮助

根据您链接的帖子,删除和重新安装ruby的前三个步骤(可能)是不必要的,而且肯定很耗时。除非我记错了,否则根据我编译1.9.2-p290的经验,您只需安装
libncurses dev
libreadline dev
,运行
extconf.rb
,然后
make
sudo make install
(我相信您错过了最后一步)。另外,虽然YMMV使用RVM,但我做了所有事情,现在我得到了“openssl”错误。我如何使用readline和openssl安装ruby?是的,这是另一种常见的方法。sudo apt get install libopenssl ruby别担心,ruby在初次安装后就不会那么头痛了。@Rahul,你需要安装libssl。类似于
sudo-apt-get-install-openssl
的功能应该可以工作,不过找到所有依赖项的最简单方法就是运行
rvm\u-notes
。它提供了一个用于安装Ruby依赖项的一行程序(通常,在Linux上编译东西时,您会用到很多依赖项)。之后,您将
cd
to ~/.rvm/src/ruby-1.9.2-p290/ext/openssl,运行extconf.rb、make、sudo make install.Erm,对不起,这是
rvm notes
rvm package install readline
rvm remove 1.9.2
rvm install 1.9.2 --with-readline-dir=$rvm_path/usr
ruby ~/.rvm/src/ruby-1.9.2-p290/readline/ext/extconf.rb
cd ~/.rvm/src/ruby-1.9.2-p290/readline/ext/
sudo make