В результате обновления до Ruby 2.0.0 "Rails в настоящее время не установлен в этой системе"
Я недавно обновил Ruby 1.9.3 до версии 2.0.0. Для этого я использовал следующую команду:
$ rvm install ruby-2.0.0
$ rvm --default use ruby-2.0.0
Он успешно установлен и установлен по умолчанию ruby-2.0.0; однако, когда я вхожу ruby -v
Я сталкиваюсь с ошибкой:
Rails is not currently installed on this system. To get the latest version, simply type:
$ sudo gem install rails
You can then rerun your "rails" command.
Я знаю, что Rails установлен, и перед обновлением моей версии Ruby я запустил rails -v, который вернул мою текущую версию.
Попытки устранения неполадок
Я следовал решению, найденному в предыдущем посте, и выполнил следующие команды:
gemsets for ruby-1.9.3-p374 (found in /Users/.../.rvm/gems/ruby-1.9.3-p374)
(default)
=> global
rails3tutorial2ndEd
/etc/rvmrc: line 5: install:: command not found
/etc/rvmrc: line 6: update:: command not found
gemsets for ruby-2.0.0-rc1 (found in /Users/.../.rvm/gems/ruby-2.0.0-rc1)
(default)
=> global
rvm use ruby-2.0.0-rc1@global
Тем не менее, работает rails -v
еще раз показывает, что проблема все еще сохраняется.
Любая помощь будет принята с благодарностью!
Обновить:
Нетерпение побудило меня просто переустановить Rails, что решило проблему. Тем не менее, мне все еще любопытно, если бы был лучший способ устранения неполадок без (вероятно, излишней) переустановки Rails.
1 ответ
Gemsets в RVM изолированы в том смысле, что они доступны только для одной версии Ruby. Таким образом, вам необходимо переустановить гем Rails после установки новой версии Ruby.
Когда версия Ruby установлена через RVM, одновременно будут созданы 2 связанных набора гемсетов. Один называется "глобальным", а другой - "по умолчанию".
Версии Ruby (и их единый связанный глобальный гемсет) становятся активными через rvm use ruby_version_here
команда.
Сгенерированные по умолчанию или (возможно несколько) пользовательские наборы gemsets становятся активными через rvm use gemset_name_here
команда.
Является ли gemset глобальным, по умолчанию или сгенерированным пользователем - он доступен только для одной версии Ruby.
Вот хороший пост в блоге, освещающий эту тему более подробно.