Ошибка установки Rails: для activesupport требуется версия Ruby >= 2.2.2
Я хочу создать новое приложение Rails. Я использую rvm с ruby-2.1.2. Я использую gemset @global
и планирую использовать bundler для управления зависимостями gem. Однако gem install rails
выходит из строя:
$ gem install rails
Fetching: concurrent-ruby-1.0.3.pre3.gem (100%)
Successfully installed concurrent-ruby-1.0.3.pre3
Fetching: minitest-5.9.0.gem (100%)
Successfully installed minitest-5.9.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: activesupport-5.0.0.gem (100%)
ERROR: Error installing rails:
activesupport requires Ruby version >= 2.2.2.
Да, это правда, я использую ruby-2.1.2, а не ruby-2.2.2, но разве мне не разрешено использовать ruby-2.1.2? Не разрешено ли нам больше использовать ruby-2.1.2?
Я подумал, что, возможно, ActiveSupport 5 уже был установлен в @global
gemset и что для ActiveSupport 5 требуется 2.2.2, но на самом деле нет ActiveSupport 5 в @global
gemset:
$ rvm gemdir
/Users/myuser/.rvm/gems/[email protected]
$ cd /Users/myuser/.rvm/gems/[email protected]
$ cd gems
$ ls
bundler-unload-1.0.2 gem-wrappers-1.2.4 rake-10.1.0 rvm-1.11.3.9 tzinfo-1.2.2
concurrent-ruby-1.0.3.pre3 i18n-0.7.0 rdoc-4.1.0 test-unit-2.1.2.0
executable-hooks-1.3.2 minitest-5.9.0 rubygems-bundler-1.4.4 thread_safe-0.3.5
Итак, как я могу предотвратить эту ошибку при попытке использовать ruby-2.1.2?
Ответы
Ответ 1
Вам разрешено использовать любую рубиновую версию, но вы не можете использовать рубиновую версию с последней версией Rails.
Когда вы делаете gem install rails
, вы получаете последнюю версию Rails (Rails 5), которая вообще не совместима с Ruby 2.1.2.
Если вы действительно хотите использовать Ruby 2.1.2, попробуйте следующее: gem install rails -v 4.2.2
.
Как использование gemset, так как мне нравится это довольно организованное, я никогда не использую глобальный. Я всегда создаю новый гемсет для каждого проекта. Это гарантирует, что у меня может быть много проектов, каждый из которых имеет версию ruby и rails, не получая никакой несовместимости между драгоценными камнями. Это из gemset в качестве рабочего пространства Ruby on Rails. Если вы отделите их по проекту, вы минимизируете вероятность странностей с несовместимостью драгоценного камня.
Ответ 2
gem install rails
Выше команда будет использовать последнюю версию рельсов, которая является стабильной версией Rails 5, для которой требуется >= ruby 2.2.2.
Мы можем использовать 2.1.2 с более низкой версией Rails. Пожалуйста, укажите версию во время установки рельсов, которые могут решить вашу проблему, например:
gem install rails --version 4.2.4 OR
gem install rails -v 4.2.4
Сообщите мне, если это сработает.
Спасибо.
Ответ 3
Я столкнулся с этим CocoaPod и исправил следующее:
- sudo gem install activesupport -v 4.2.6
- sudo gem install cocoapods
https://github.com/CocoaPods/CocoaPods/issues/5603
Ответ 4
Используя RVM, я работал с инструкциями здесь
curl -sSL https://rvm.io/mpapis.asc | gpg --import - &&\
curl -L get.rvm.io | bash -s stable &&\
source /etc/profile.d/rvm.sh && /usr/local/rvm/bin/rvm reload &&\
/usr/local/rvm/bin/rvm requirements run &&\
/usr/local/rvm/bin/rvm install 2.2.4 &&\
/usr/local/rvm/bin/rvm use 2.2.4 --default && ruby --version
Моя среда была контейнером Docker с установленным CentOS
Ответ 5
Если вы используете rbenv
Убедитесь, что rbenv правильно настроен с помощью этого rbenv-doctor script:
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash