5

当我想执行 Rails 3 控制台时,它会抛出这个:

$ script/rails c
/usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (Load Error)

我试图安装libreadline-dev

$ sudo wajig install libreadline-dev
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
  libncurses5-dev libreadline6-dev
Se instalarán los siguientes paquetes NUEVOS:
  libncurses5-dev libreadline-dev libreadline6-dev
0 actualizados, 3 se instalarán, 0 para eliminar y 6 no actualizados.
Necesito descargar 1799kB de archivos.
Se utilizarán 7266kB de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]? 
Des:1 http://mx.archive.ubuntu.com/ubuntu/ lucid/main libncurses5-dev 5.7+20090803-2ubuntu3 [1564kB]
Des:2 http://mx.archive.ubuntu.com/ubuntu/ lucid/main libreadline6-dev 6.1-1 [234kB]
Des:3 http://mx.archive.ubuntu.com/ubuntu/ lucid/main libreadline-dev 6.1-1 [904B]
Descargados 1799kB en 3seg. (477kB/s)
Seleccionando el paquete libncurses5-dev previamente no seleccionado.
(Leyendo la base de datos ...  00%
225006 ficheros y directorios instalados actualmente.)
Desempaquetando libncurses5-dev (de .../libncurses5-dev_5.7+20090803-2ubuntu3_i386.deb) ...
Seleccionando el paquete libreadline6-dev previamente no seleccionado.
Desempaquetando libreadline6-dev (de .../libreadline6-dev_6.1-1_i386.deb) ...
Seleccionando el paquete libreadline-dev previamente no seleccionado.
Desempaquetando libreadline-dev (de .../libreadline-dev_6.1-1_i386.deb) ...
Procesando disparadores para man-db ...
Procesando disparadores para install-info ...
Configurando libncurses5-dev (5.7+20090803-2ubuntu3) ...
Configurando libreadline6-dev (6.1-1) ...
Configurando libreadline-dev (6.1-1) ...

但是当我再次尝试时,它再次抛出相同的问题:

$ script/rails c
/usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError)
    from /usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.4/lib/rails/commands/console.rb:3:in `require'
    from /usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.4/lib/rails/commands/console.rb:3:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.4/lib/rails/commands.rb:20:in `require'
    from /usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.4/lib/rails/commands.rb:20:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

然后,我尝试readline使用安装rvm

# rvm pkg install readline
Fetching readline-5.2.tar.gz to /usr/local/rvm/archives
Extracting readline-5.2.tar.gz to /usr/local/rvm/src
Applying patch '/usr/local/rvm/patches/readline-5.2/shobj-conf.patch'...
Configuring readline in /usr/local/rvm/src/readline-5.2.
Compiling readline in /usr/local/rvm/src/readline-5.2.
Installing readline to /usr/local/rvm/usr
Fetching readline-6.2.tar.gz to /usr/local/rvm/archives
Extracting readline-6.2.tar.gz to /usr/local/rvm/src
Applying patch '/usr/local/rvm/patches/readline-6.2/patch-shobj-conf.diff'...
Configuring readline in /usr/local/rvm/src/readline-6.2.
Compiling readline in /usr/local/rvm/src/readline-6.2.
Installing readline to /usr/local/rvm/usr

但同样如此:

$ script/rails c
/usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError)
    from /usr/local/rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.4/lib/rails/commands/console.rb:3:in `require'
    from /usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.4/lib/rails/commands/console.rb:3:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.4/lib/rails/commands.rb:20:in `require'
    from /usr/local/rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.4/lib/rails/commands.rb:20:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

我还应该尝试什么?

4

3 回答 3

6

我必须检查rvm requirements并确保所有软件包都已安装。然后重新安装红宝石:

rvm reinstall 1.9.2
Removing /usr/local/rvm/src/ruby-1.9.2-p318...
Removing /usr/local/rvm/rubies/ruby-1.9.2-p318...
Removing default ruby interpreter
Removing ruby-1.9.2-p318 aliases...
Removing ruby-1.9.2-p318 wrappers...
Removing ruby-1.9.2-p318 environments...
Removing ruby-1.9.2-p318 binaries...
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-1.9.2-p318, this may take a while depending on your cpu(s)...
ruby-1.9.2-p318 - #fetching 
ruby-1.9.2-p318 - #extracting ruby-1.9.2-p318 to /usr/local/rvm/src/ruby-1.9.2-p318
ruby-1.9.2-p318 - #extracted to /usr/local/rvm/src/ruby-1.9.2-p318
ruby-1.9.2-p318 - #configuring 
ruby-1.9.2-p318 - #compiling 
ruby-1.9.2-p318 - #installing 
Removing old Rubygems files...
Installing rubygems-1.8.18 for ruby-1.9.2-p318 ...
Installation of rubygems completed successfully.
ruby-1.9.2-p318 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.2-p318 - #importing default gemsets (/usr/local/rvm/gemsets/)
Install of ruby-1.9.2-p318 - #complete 

最后它起作用了:

$ script/rails c
DEPRECATION WARNING: railtie_name is deprecated and has no effect. (called from <top (required)> at /home/israel/proyectos/d-Formacion/config/application.rb:7)
/usr/local/rvm/gems/ruby-1.9.2-p318/gems/actionpack-3.0.4/lib/action_dispatch/http/mime_type.rb:98: warning: already initialized constant PDF
Loading development environment (Rails 3.0.4)
1.9.2-p318 :001 > exit
于 2012-03-24T04:31:26.427 回答
6

重新安装 ruby​​ 有点矫枉过正,您可以按照此博客文章中的说明进行操作。

http://vvv.tobiassjosten.net/ruby-on-rails/fixing-readline-for-the-ruby-on-rails-console

安装 libreadline5 和 libncurses5

$ sudo aptitude install libreadline5-dev libncurses5-dev

然后重建并重新安装红线

cd ~/.rvm/src/ruby-1.9.2-p180/ext/readline
ruby extconf.rb
make
make install
于 2012-07-11T07:51:37.073 回答
5

解决方案是将两个步骤结合起来:

  1. 在 Ubuntu 上安装 libreadline-dev 例如:

    sudo apt-get install libreadline-dev
    
  2. 重新安装 Ruby

    rvm install 1.9.2
    

然后将使用 libreadline 编译 ruby​​。

于 2012-06-27T21:31:54.263 回答