簡體   English   中英

如何從Ruby 1.9.2降級到Ruby 1.8.7以運行Rails 2.0.2

[英]How to Downgrade from Ruby 1.9.2 to Ruby 1.8.7 to run Rails 2.0.2

我想在Ubuntu 10.04操作系統上降級我安裝的Ruby版本(Ruby 1.9.2),以便我可以使用適當版本的Ruby 1.8.7來運行Rails 2.0.2。 我正在使用舊版本的Rails用於項目目的。

如果我在Ruby 1.9.2中使用Rails 2.0.2,它會給我一個錯誤,說無法將Enumerator轉換為數組。

我以為我可以使用rvm,但我不確定它是否適合降級。

當我使用已知的命令rvm list時,我在終端中得到以下內容

mgj@pc146724-desktop:~$ 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 

我使用命令dpkg -l |在安裝的ruby包列表中獲得以下內容 grep ruby

mgj@pc146724-desktop:~$ 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
mgj@pc146724-desktop:~$ ^C

我是否需要卸載Ruby 1.9.2,然后才新安裝Ruby 1.8.7或者我可以切換版本嗎? 如果我可以切換版本,請指導我如何設置從Ruby 1.9.2到Ruby 1.8.7的路徑。 或者,如果有其他方式,請告訴我。

如果我必須卸載Ruby 1.9.2然后重新安裝Ruby 1.8.7,請告訴我如何才能解決它。 我嘗試了以下命令來卸載Ruby 1.9.2但它似乎沒有找到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

當我檢查當前版本的Ruby安裝時,它顯示:

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

mgj@pc146724-desktop:~/Downloads/rubygems_postextract/rubygems-1.4.1$ which ruby
/home/mgj/.rvm/rubies/ruby-1.9.2-p0/bin/ruby

謝謝你的幫助..!!

RVM的全部意義在於您可以擁有多個版本的Ruby並輕松切換它們。

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 1.8.7@rails202 #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 1.8.7@rails202
#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 1.8.7@rails303
#et voila! we are now using Rails 3.0.3 on Ruby 1.8.7 !

使用RVM並節省數周的痛苦。

您可以使用多個Ruby版本,每個版本都有自己獨立的寶石。 這樣你就可以分別在前者和后者上安裝與Rails 2和Rails 3寶石同時安裝的1.8.7和1.9.2。

安裝Ruby版本就像輸入rvm install 1.9.2rvm install 1.8.7一樣簡單。 要在兩者之間切換: rvm 1.9.2rvm 1.8.7

您可以使用rvm --default 1.9.2rvm --default 1.8.7設置默認Ruby。

RVM不會觸及您當地的Ruby,也不會觸及寶石。 你可以隨時切換回它: rvm system

source~ / .rvm / scripts / rvm

rvm reload(重新加載最新安裝的rvm)

rvm install 1.8.7

rvm使用1.8.7 - 默認

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM