2012-01-19 28 views
17

Duplicar posible: RVM
Ruby 1.9.2 and Rails 3 cannot open rails consoleinstalar ruby ​​1.9.3 usando RVM en ubuntu

ya he instalado y Ruby 1.9.2, ambos trabajando correctamente. Usando rvm versión 1.10.2. Previamente instalé los paquetes rvm readline/zlib, pero ahora estoy teniendo grandes problemas con readline ahora. Estoy tratando de instalar ruby ​​1.9.3 en rvm, pero siempre termino con readline no encontrado.

He intentado seguir diferentes soluciones:

rvm remove 1.9.3 
rvm pkg install readline 
rvm install 1.9.3 --with-readline-dir=$rvm_path/usr/ \ 
    --with-zlib-dir=$rvm_path/usr/ 

rvm use 1.9.3 
rvmsudo gem install bundler 
bundle install (all gems installed fine) 
rails c/rails s 
.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/completion.rb:9:in `require': \ 
    cannot load such file -- readline (LoadError) 

tengo libreadline-dev (versión 6, la actual) instalado (todo lo necesario por esos paquetes más o menos)

también probé el siguiente :

.rvm/src/ruby-1.9.3-p0/ext/readline]$ ruby extconf.rb 
checking for tgetnum() in -lncurses... yes 
checking for readline/readline.h... yes 
checking for readline/history.h... yes 
checking for readline() in -lreadline... no 
checking for readline() in -ledit... no 
checking for editline/readline.h... no 

.rvm/src/ruby-1.9.3-p0/ext/readline]$ ruby extconf.rb \ 
    --with-readline-dir=/home/claudiocontin/.rvm/usr/ 
checking for tgetnum() in -lncurses... yes 
checking for readline/readline.h... yes 
checking for readline/history.h... yes 
checking for readline() in -lreadline... no 
checking for readline() in -ledit... no 
checking for editline/readline.h... no 

.rvm/src/ruby-1.9.3-p0/ext/readline]$ ruby extconf.rb \ 
    --with-readline-lib=/home/claudiocontin/.rvm/usr/ 
checking for tgetnum() in -lncurses... yes 
checking for readline/readline.h... yes 
checking for readline/history.h... yes 
checking for readline() in -lreadline... no 
checking for readline() in -ledit... no 
checking for editline/readline.h... no 

Makefile no se genera por supuesto ...

apt-get install libreadline-dev 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
libreadline-dev is already the newest version. 

Ideas?

Respuesta

12

Lo que terminé haciendo es eliminar todo el libreadline de usr RVM/lib/ruta.

Paquete de libreadline5-dev instalado (.deb en este caso) descargado manualmente, porque la nueva distribución de ubuntu solo tiene libreadline6-dev como candidato.

fueron a RVM ruby ​​1.9.3 src y:

ruby extconf.rb --with-editline-dir=/usr/ --with-readline-dir=/usr/ 
make 
sudo make install 

ahora trabaja como un encanto.

Cosas muy dolorosa :)

edición:

también tener en cuenta que readline usa también libeditline-dev ahora, se puede desactivar manualmente cuando configure rubí readline, pasando: --disable-libedit

ruby extconf --disable-libedit 
+0

¿Cómo instalar manualmente libreadline5-dev en ubuntu 12.04? No hay mucho sobre esto en línea. – user938363

+0

@ user938363 Solo tienes que instalarlo de la siguiente manera: 'sudo apt-get install libreadline5-dev' luego compila como se muestra arriba. –

5

Siempre he encontrado que obtener RVM para jugar muy bien con los paquetes es un poco de vudú. Muchas veces, se trata de la captura de una dependencia - Monté un guión que he tenido suerte con en el pasado, intente esto:

sudo apt-get install zlib1g-dev libssl-dev libsqlite3-dev libmysqlclient-dev imagemagick librmagick-ruby libxml2-dev libxslt1-dev build-essential openssl libreadline6 libreadline6-dev zlib1g libyaml-dev libsqlite3-0 sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison libpq-dev libpq5 libmysql-ruby libmysqlclient-dev 

rvm pkg install autoconf 
rvm pkg install zlib 
rvm pkg install readline 
rvm pkg install openssl 
rvm pkg install iconv 
rvm install 1.9.3 
rvm use 1.9.3 --default 
+0

sin suerte. sigue siendo el mismo ... – CLod

+0

que funcionó para mí, bur para [rbenv] (https://github.com/sstephenson/rbenv) – fluxsaas

+0

Trate de ejecutar los requisitos de 'rvm' para obtener una lista de los paquetes que deberían estar presentes. –

45

Intenté hacer rvm pkg readline, instalar ubuntu pkgs etc sin éxito. Lo que funcionó para mí:

gem install rb-readline 

y añadir la siguiente línea a su Gemfile:

gem 'rb-readline' 
+1

Esto funcionó para mí también –

+0

¡Muchas gracias! Intenté CADA solución aquí y CADA solución en la página de rvm sin suerte. ¡He intentado hacer que esto funcione durante horas! Esto funcionó bien. ¡Gracias de nuevo! – AyJay

+0

+1 Muy buena alternativa a la construcción readline. Instalé cientos de bibliotecas desde el origen, pero no pude obtener la extensión de lectura para construir en una máquina determinada. – Kelvin

Cuestiones relacionadas