14

Ubuntu 10.04 OS にインストールした 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 knownを使用すると、ターミナルで次のように表示されます

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 ルビー

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

ご協力いただきありがとうございます..!!

4

3 に答える 3

41

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 !
于 2011-01-05T05:27:11.620 に答える
7

RVM を使用すれば、数週間の苦痛から解放されます。

複数の Ruby バージョンを使用でき、各バージョンには独自の個別の gem セットがあります。そうすれば、1.8.7 と 1.9.2 をそれぞれ前者と後者に Rails 2 と Rails 3 の gem と同時にインストールできます。

Ruby バージョンのインストールは、rvm install 1.9.2またはと入力するだけrvm install 1.8.7です。2 つを切り替えるには:rvm 1.9.2またはrvm 1.8.7.

rvm --default 1.9.2またはでデフォルトの Ruby を設定できますrvm --default 1.8.7

RVM はローカルの Ruby や gem には触れません。いつでも元に戻すことができます: rvm system.

于 2011-01-05T05:32:18.617 に答える
1

ソース ~/.rvm/scripts/rvm

rvm reload (インストールされている最新の rvm をリロードします)

rvm インストール 1.8.7

rvm 使用 1.8.7 --デフォルト

于 2016-08-19T20:24:48.173 に答える