2012-01-19 19 views
17

Eventuali duplicati: rvm e ruby ​​1.9.2
Ruby 1.9.2 and Rails 3 cannot open rails consoleinstallare Ruby 1.9.3 utilizzando rvm su Ubuntu

ho già installato, sia lavorando in modo corretto. Utilizzando la versione 1.10.2 di rvm. Ho precedentemente installato i pacchetti rvm readline/zlib, ma ora sto avendo grossi problemi con readline ora. Sto cercando di installare Ruby 1.9.3 in RVM, ma finisco sempre per avere readline non trovato.

ho cercato di seguire diverse soluzioni:

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) 

ho libreadline-dev (versione 6, quella attuale) installato (tutto il necessario per quei pacchetti più o meno)

Ho anche provato il seguente :

.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 non viene generato ovviamente ...

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

Idee?

risposta

12

Quello che ho finito per fare è rimuovere tutti i libreadline da rvm usr/lib/path.

Installato il pacchetto libreadline5-dev (.deb in questo caso) scaricato manualmente, poiché la nuova ubuntu distro ha solo libreadline6-dev come candidato.

andato a rvm ruby ​​1.9.3 src e:

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

ora funziona come un fascino.

Roba molto doloroso :)

edit:

Anche tenere a mente che readline usa anche libeditline-dev ora, è possibile disattivare manualmente quando configure rubino readline, passando: --disable-libedit

ruby extconf --disable-libedit 
+0

Come installare manualmente libreadline5-dev su ubuntu 12.04? Non c'è molto su questo online. – user938363

+0

@ user938363 Solo apt-get installalo in questo modo: 'sudo apt-get install libreadline5-dev' quindi compilare come mostrato sopra. –

5

Ho sempre trovato RVM per giocare bene con i pacchetti di essere un po 'di voodoo. Un sacco di volte, si tratta di prendere una dipendenza - ho messo insieme uno script che ho avuto fortuna con in passato, provate questo:

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

senza fortuna. sempre lo stesso ... – CLod

+0

che ha funzionato per me, per [rbenv] (https://github.com/sstephenson/rbenv) – fluxsaas

+0

Prova a eseguire 'requisiti rvm' per ottenere un elenco di pacchetti che dovrebbero essere presenti. –

45

Ho provato a fare rvm pkg readline, installare ubuntu pkgs ecc senza alcun successo. Quello che ha funzionato per me:

gem install rb-readline 

e aggiungere la seguente riga al Gemfile:

gem 'rb-readline' 
+1

Questo ha funzionato anche per me –

+0

Grazie mille! Ho provato OGNI soluzione qui e OGNI soluzione nella pagina di rvm senza fortuna. Ho provato a farlo funzionare per ore ora! Questo ha funzionato bene. Grazie ancora! – AyJay

+0

+1 Ottima alternativa alla costruzione di readline. Ho installato centinaia di librerie dalla fonte in precedenza, ma non ho potuto ottenere l'estensione readline da compilare su un determinato computer. – Kelvin

Problemi correlati