Как перейти с Ruby 1.9.2 на Ruby 1.8.7, чтобы запустить Rails 2.0.2

Я хочу понизить версию Ruby, которую я установил (Ruby 1.9.2) в ОС Ubuntu 10.04, чтобы я мог использовать соответствующую версию Ruby 1.8.7 для запуска Rails 2.0.2. Я использую старую версию Rails для целей проекта.

Если я использую Rails 2.0.2 с Ruby 1.9.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 

Я получаю следующее в списке установленных пакетов ruby ​​​​при использовании команды dpkg -l | 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

Спасибо за вашу помощь..!!


person boddhisattva    schedule 05.01.2011    source источник


Ответы (3)


Весь смысл 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 !
person Zabba    schedule 05.01.2011
comment
Да, Забба и Уэйн Э. Сегин, которые на самом деле написали RVM.. :) - person DemitryT; 26.01.2012

Используйте RVM и сэкономьте себе недели боли.

Вы можете использовать несколько версий Ruby, и каждая версия имеет свой собственный набор драгоценных камней. Таким образом, вы можете установить 1.8.7 и 1.9.2 одновременно с гемами Rails 2 и Rails 3 на первый и второй соответственно.

Установить версию Ruby так же просто, как ввести rvm install 1.9.2 или rvm install 1.8.7. Для переключения между двумя: rvm 1.9.2 или rvm 1.8.7.

Вы можете установить Ruby по умолчанию с помощью rvm --default 1.9.2 или rvm --default 1.8.7.

RVM не коснется ни вашего локального Ruby, ни его драгоценных камней. Вы можете вернуться к нему в любое время: rvm system.

person Matheus Moreira    schedule 05.01.2011

источник ~/.rvm/скрипты/rvm

rvm reload (перезагрузить последнюю установленную rvm)

РВМ установить 1.8.7

rvm использовать 1.8.7 --по умолчанию

person Nagesh Dhope    schedule 19.08.2016