4Trabes Historias de una empresa en 100 metros cuadrados

El blog de Trabe Soluciones

rvm + rails3.0.0.beta + ruby 1.9.1

| | Comentarios

Desde hace unos meses estoy “viviendo en edge”. Para ello estoy usando rvm , que nos permite tener varias versiones de ruby con sus correspondientes gemas.

Tras actualizar a la beta de rails e intentar ejecutar la consola (con el nuevo comando rails console ) me topé con el siguiente error:

1
2
3
4
5
6
7
8
9
$ rails console
/home/andion/.rvm/rubies/ruby-1.9.1-p378/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError)
	from /home/andion/.rvm/rubies/ruby-1.9.1-p378/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
	from /home/andion/.rvm/gems/ruby-1.9.1-p378/gems/railties-3.0.0.beta/lib/rails/commands/console.rb:3:in `require'
	from /home/andion/.rvm/gems/ruby-1.9.1-p378/gems/railties-3.0.0.beta/lib/rails/commands/console.rb:3:in `<top (required)>'
	from /home/andion/.rvm/gems/ruby-1.9.1-p378/gems/railties-3.0.0.beta/lib/rails/commands.rb:32:in `require'
	from /home/andion/.rvm/gems/ruby-1.9.1-p378/gems/railties-3.0.0.beta/lib/rails/commands.rb:32:in `<top (required)>'
	from /home/andion/git/efimera-eopages/script/rails:10:in `require'
	from /home/andion/git/efimera-eopages/script/rails:10:in `<main>'

Cuando me encontré con el problema estaba usando rvm0.1.23, rails3.0.0.beta y ruby1.9.1 pero supongo que la solución será extensible a las siguientes betas de rails (ahora mismo uso rails3 beta 3 y ruby 1.9.2 y todo sigue bien tras el fix)

Revisé algunas soluciones, pero todas estaban orientadas al uso de un ruby de sistema y no a través de rvm, además, la solución que ofrece la web de rvm aunque parecía lógica, tampoco me funcionaba:

1
2
3
$ rvm package install readline
Package 'readline' is unknown.
Usage: 'rvm package {install,uninstall} {openssl,zlib,readline,iconv,ncurses}'

Googleando un poco más si que he visto alguna gente con el mismo problema por aquí y por allá

La solución para mí: una mezcla de las solución que da rvm y la sabiduría popular: reinstalar ruby 1.9.1 con el flag: readline-dir a un directorio válido para rvm:

1
2
$ rvm uninstall 1.9.1
$ rvm install 1.9.1 --with-readline-dir=$rvm_path/.rvm/usr

Edit 06/05/2010

Tras actualizar a Ubuntu Lynx y con rvm 0.1.29 el problema se mantiene, pero la solución que poponen en la web de rvm lo arregla:

1
$ rvm package install readline ; rvm remove 1.9.1 ; rvm install 1.9.1 -C --with-readline-dir=$rvm_path/usr


Lo sentimos, pero los comentarios están cerrados

Muy buena aportación. Yo también tuve el mismo problema y consegui arreglarlo gracias a esta entrada. Saludos!

01/Jun/2010 Victor

Hay otra solución:

cd ~/.rvm/src/ruby-1.9.1-p378/ext/readline/

ruby extconf.rb
make
make install

y funcionando

Esto ya me había pasado con openssl y zlib en otras ocasiones y siempre es la misma solución. Como soy novato en ROR no entiendo bien el motivo de que ocurra esto, pero está claro que es algo en los Makefiles de la instalación de ruby/rails