Как перейти с Ruby 1.9.2 на Ruby 1.8.7 для запуска Rails 2.0.2 - PullRequest
14 голосов
/ 05 января 2011

Я хочу понизить версию 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

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 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

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

Ответы [ 3 ]

39 голосов
/ 05 января 2011

Весь смысл 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 !
7 голосов
/ 05 января 2011

Используйте 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.

0 голосов
/ 19 августа 2016

source ~ / .rvm / scripts / rvm

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

rvm install 1.8.7

rvm use 1.8.7 --default

...