ruby - rails - Problemas con la consola de rieles, RVM y readline.
rvm install rails (7)
¿Has probado este tutorial para usar la instalación readline de brew?
http://blog.plataformatec.com.br/2010/05/accented-chars-in-irb-with-rvm-and-ruby-1-8-7/
He instalado rvm como una manera de asegurar que mi versión de desarrollo local de ruby sea la misma que la de mi servidor para una aplicación en particular en la que trabajo (ruby 1.8.7) He hecho esto, e instalé ruby 1.8.7 ok. Sin embargo, cuando intento iniciar la consola de Rails obtengo este error:
Readline was unable to be required, if you need completion or history install readline then reinstall the ruby.
You may follow ''rvm notes'' for dependencies and/or read the docs page http://rvm.beginrescueend.com/packages/readline/ . Be sure you ''rvm remove X ; rvm install X'' to re-compile your ruby with readline support after obtaining the readline libraries.
Couldn''t load Wirble: no such file to load -- wirble
He leído las notas en la página a las que se refiere el error (http://rvm.beginrescueend.com/packages/readline/), y seguí las instrucciones, que implican básicamente instalar readline, desinstalar ruby 1.8.7 y luego instalar ruby 1.8.7 de nuevo con soporte de readline. (en realidad esa página usa ruby 1.9.2 como ejemplo, pero supongo que también debería funcionar con 1.8.7. Quizás ese no sea el caso).
Pero, todavía me sale el mismo error. ¿Alguien más ha pasado por esto y lo ha descubierto?
Agradecido por cualquier consejo - max
EDITAR - Estoy usando Ubuntu 9.10 por cierto en caso de que sea relevante.
EDITAR: aquí está mi salida para la rvm info
que se solicita a continuación:
$ rvm info
system:
system:
uname: "Linux max-laptop 2.6.31-22-generic #68-Ubuntu SMP Tue Oct 26 16:38:35 UTC 2010 i686 GNU/Linux"
bash: "/bin/bash => GNU bash, version 4.0.33(1)-release (i486-pc-linux-gnu)"
zsh: " => not installed"
rvm:
version: "rvm 1.1.6 by Wayne E. Seguin ([email protected]) [http://rvm.beginrescueend.com/]"
homes:
gem: "not set"
ruby: "not set"
binaries:
ruby: "/usr/bin/ruby"
irb: "/usr/bin/irb"
gem: "/usr/bin/gem"
rake: "/usr/bin/rake"
environment:
PATH: "/home/max/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin:/home/max/software/svnmerge:/home/max/.gem/ruby/1.8/bin:/home/max/work/e_learning_resource/trunk/public/assets/dvd_files/bin:/opt/firefox:/home/max/.rvm/bin:/home/max/.rvm/bin"
GEM_HOME: ""
GEM_PATH: ""
MY_RUBY_HOME: ""
IRBRC: ""
RUBYOPT: ""
gemset: ""
Ejecuta el comando
rvm requirements
Muestra los requisitos y dependencias. Instalar esos y reinstalar el rubí en rvm
rvm remove 1.9.2
rvm install 1.9.2
¡Funciona!
Gema intentada instalar rb-readline
Todavía no funcionó. Así que comencé a irb e hice un readline requerido. El mensaje de error ayudó.
Readline was unable to be required, if you need completion or history install readline then reinstall the ruby.
You may follow ''rvm notes'' for dependencies and/or read the docs page https://rvm.io/packages/readline/ . Be sure you ''rvm remove X ; rvm install X'' to re-compile your ruby with readline support after obtaining the readline libraries.
1.9.3p327 :001 > require ''readline''
LoadError: /usr/local/lib/libreadline.so.6: undefined symbol: UP - /home/sudhir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/x86_64-linux/readline.so
from /home/sudhir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require''
from /home/sudhir/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require''
from (irb):1
from /home/sudhir/.rvm/rubies/ruby-1.9.3-p327/bin/irb:16:in `<main>''
1.9.3p327 :002 > ^[[6^[[A^[[A^[[B^C^C
Entonces, el problema en mi caso fue todo el libreadline * en / usr / local / lib. Había instalado readline desde el código fuente y eso lo estaba arruinando.
Siguió las instrucciones aquí para arreglarlo. http://vkarthickeyan.wordpress.com/2012/02/16/mysql-symbol-lookup-error-usrlocalliblibreadline-so-6-undefined-symbol-up/
Tengo el mismo problema y lo resolví. Reviso http://rvm.beginrescueend.com/packages/readline/ Por favor, revise las siguientes 2 cosas:
-
sudo aptitude install libreadline5-dev libncurses5-dev
usalibreadline6-dev
, si tienes una nueva versión. -
ruby extconf.rb -- --with-readline-dir=''/home/youruser/.rvm/usr/include/readline''
asegúrate de tener los archivos lib de readline bajo el directorio with-readline que has señalado.
Tuve este problema con Ruby 2.1.3. Actualizar RVM y luego reinstalar Ruby funcionó para mí:
rvm get stable
rvm reinstall 2.1.3
Tuve un problema similar con 1.9.2 en Ubuntu 10.04, pero los síntomas eran idénticos. Para que funcione:
rvm pkg install readline
o antes de RVM versión 1.6.32, necesita el siguiente comando
rvm package install readline
Entonces:
apt-get install ncurses-dev
Y luego siguiendo sus instrucciones en http://rvm.beginrescueend.com/packages/readline/
cd $HOME/.rvm/src/ruby-1.9.2-p0/ext/readline
ruby extconf.rb -- --with-readline-dir="$HOME/.rvm/usr"
make install
Realmente había hecho una instalación rvm del sistema en el servidor, así que necesitaba hacer esto:
cd $HOME/.rvm/src/ruby-1.9.2-p0/ext/readline
ruby extconf.rb -- --with-readline-dir="/usr/local/rvm/usr"
make install
Después de eso pude tener acceso completo a la consola.
Readline was unable to be required, if you need completion or history install readline then reinstall the ruby.
You may follow ''rvm notes'' for dependencies and/or read the docs page https://rvm.io/packages/readline/ . Be sure you ''rvm remove X ; rvm install X'' to re-compile your ruby with readline support after obtaining the readline libraries.
Si sigue ese link , encontrará algunas instrucciones sobre cómo solucionar este problema. Lo que funcionó para mí fue el primer paso, eliminar todos los paquetes instalados manualmente:
$ rm -rf $rvm_path/usr
y entonces
$ rvm requirements
$ rvm reinstall 1.9.3
¡Espero que funcione!