2011-01-05 21 views
14

Voglio eseguire il downgrade della versione di Ruby che ho installato (Ruby 1.9.2) su Ubuntu 10.04 OS in modo da poter utilizzare la versione appropriata di Ruby 1.8.7 per eseguire Rails 2.0.2. Sto usando la versione precedente di Rails per lo scopo del progetto.Come eseguire il downgrade da Ruby 1.9.2 a Ruby 1.8.7 per eseguire Rails 2.0.2

Se sto usando Rails 2.0.2 con Ruby 1.9.2 mi dà un errore dicendo cant converti Enumerator in un array.

Pensavo di poter utilizzare rvm, ma non sono sicuro che sia adatto per il downgrade.

ottengo quanto segue nel terminale quando uso il comando list rvm noto

[email protected]:~$ rvm list known 
# MRI Rubies 
[ruby-]1.8.6[-p399] 
[ruby-]1.8.6-head 
[ruby-]1.8.7[-p302] 
[ruby-]1.8.7-head 
[ruby-]1.9.1-p243 
[ruby-]1.9.1[-p376] 
[ruby-]1.9.1-p429 
[ruby-]1.9.1-head 
[ruby-]1.9.2-preview1 
[ruby-]1.9.2-preview3 
[ruby-]1.9.2-rc1 
[ruby-]1.9.2-rc2 
[ruby-]1.9.2[-p0] 
[ruby-]1.9.2-head 
ruby-head 

# JRuby 
jruby-1.2.0 
jruby-1.3.1 
jruby-1.4.0 
jruby-1.5.1 
jruby-1.5.2 
/home/mohnish/.rvm/config/known 

ottengo quanto segue nella lista dei pacchetti installati rubino sull'utilizzo del comando dpkg -l | grep ruby ​​

[email protected]:~$ dpkg -l | grep ruby 
ii libdbm-ruby        4.2            DBM interface for Ruby 
ii libdbm-ruby1.8        1.8.7.249-2          DBM interface for Ruby 1.8 
ii libgdbm-ruby        4.2            GDBM interface for Ruby 
ii libgdbm-ruby1.8       1.8.7.249-2          GDBM interface for Ruby 1.8 
ii libopenssl-ruby       4.2            OpenSSL interface for Ruby 
ii libopenssl-ruby1.8       1.8.7.249-2          OpenSSL interface for Ruby 1.8 
ii libreadline-ruby       4.2            Readline interface for Ruby 
ii libreadline-ruby1.8      1.8.7.249-2          Readline interface for Ruby 1.8 
ii libruby1.8         1.8.7.249-2          Libraries necessary to run Ruby 1.8 
ii libtcltk-ruby        4.2            Tcl/Tk interface for Ruby 
ii libtcltk-ruby1.8       1.8.7.249-2          Tcl/Tk interface for Ruby 1.8 
ii rdoc          4.2            Generate documentation from ruby source file 
ii ruby          4.2            An interpreter of object-oriented scripting 
ii ruby-elisp         4.2            Emacs-lisp ruby-mode for Ruby 
ii ruby-full         4.2            Ruby full installation 
ii ruby1.8         1.8.7.249-2          Interpreter of object-oriented scripting lan 
ii ruby1.8-dev        1.8.7.249-2          Header files for compiling extension modules 
ii ruby1.8-elisp        1.8.7.249-2          ruby-mode for Emacsen 
[email protected]:~$ ^C 

Ho bisogno di disinstallare rubino 1.9.2 e solo allora appena installare Ruby 1.8.7 o posso cambiare le versioni ?. Se posso passare da una versione all'altra, ti prego di dirmi come impostare il percorso da Ruby 1.9.2 a Ruby 1.8.7. O se c'è un altro modo per favore fatemelo sapere.

Se devo disinstallare Ruby 1.9.2 e installare di recente Ruby 1.8.7, fatemi sapere come posso procedere. Ho provato i seguenti comandi per disinstallare Ruby 1.9.2 ma non sembra aver trovato il pacchetto Ruby 1.9.2.

sudo aptitude remove ruby 

sudo aptitude remove ruby 1.9.2p0 

sudo purge ruby 

sudo aptitude purge ruby 1.9.2p0 

Quando ho controllato per la versione corrente di Ruby installata mostra:

[email protected]:~/Downloads/rubygems_postextract/rubygems-1.4.1$ ruby -v 
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux] 

[email protected]:~/Downloads/rubygems_postextract/rubygems-1.4.1$ which ruby 
/home/mgj/.rvm/rubies/ruby-1.9.2-p0/bin/ruby 

Grazie per il vostro aiuto .. !!

risposta

39

punto intero di RVM è così che si può avere più versioni di Ruby e passare tra di loro facilmente ..

rvm install 1.8.7 #or some specific version - choose from the rvm list known 
rvm use 1.8.7 
rvm gemset create rails202 #create a gemset called "rails202" for Ruby 1.8.7 
rvm [email protected] #make the gemset the current selection 
gem install rails -v 2.0.2 #install rails (just for this gemset!) 
#now, we have a gemset called "rails202" in Ruby 1.8.7. 
#anytime we want to use it, we do: 
rvm [email protected] 
#create as many gemsets needed, eg for rails 3.0.3 on Ruby 1.8.7 we can do the 
#similar as above. Then to use the new gemset just do: 
rvm [email protected] 
#et voila! we are now using Rails 3.0.3 on Ruby 1.8.7 ! 
+2

+1 per Zabba, una persona molto utile. – Tass

+3

Sì, Zabba e Wayne E. Seguin che in realtà hanno scritto RVM .. :) – DemitryT

+0

uso rvm potrebbe non funzionare senza '/ bin/bash --login' – t1gor

7

Usa RVM e risparmiare settimane di dolore.

È possibile utilizzare più versioni di Ruby e ogni versione ha il proprio insieme separato di gemme. In questo modo puoi avere 1.8.7 e 1.9.2 installati contemporaneamente con le gemme Rails 2 e Rails 3 sul primo e sul secondo rispettivamente.

L'installazione di una versione di Ruby è semplice come digitare rvm install 1.9.2 o rvm install 1.8.7. Per passare da uno all'altro: rvm 1.9.2 o rvm 1.8.7.

È possibile impostare il Ruby predefinito con rvm --default 1.9.2 o rvm --default 1.8.7.

RVM non toccherà il tuo Rubino locale né le sue gemme. È possibile tornare ad esso in qualsiasi momento: rvm system.

0

source ~/.rvm/scripts/rvm

rvm reload (Ricarica l'ultimo rvm installato)

rvm installare 1.8.7

uso rvm 1.8.7 - default