Ваша версия Ruby — 2.0.0, но в вашем Gemfile указано 2.1.0

Когда я пытаюсь установить пакет, я получаю следующее сообщение:

Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0

В моем Gemfile у меня есть следующее:

ruby '2.1.0'

И когда я запускаю ruby -v в консоли, я получаю:

ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]

Что означает Ruby 2.1.0p0? Какая версия должна быть в моем Gemfile и почему ошибка говорит мне, что у меня Ruby версии 2.0.0?


person stecd    schedule 13.04.2014    source источник
comment
какой менеджер версий ruby ​​вы используете rvm или rbenv?   -  person Зелёный    schedule 13.04.2014
comment
добавить .rvmrc с rvm use 2.1.0 > /dev/null в директорию проекта. эта рубиновая версия.   -  person Зелёный    schedule 13.04.2014
comment
Что это делает? Я добавил файл в свой проектный каталог с именем .rvmrc и поместил в него rvm use 2.1.0 > /dev/null. К сожалению, я все еще получаю то же сообщение, когда запускаю установку пакета: Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0   -  person stecd    schedule 13.04.2014
comment
запустите rvm list, чтобы посмотреть установленную версию ruby.   -  person Зелёный    schedule 13.04.2014
comment
и запустите gem install bundler или gem update bundler это может решить вашу проблему.   -  person Зелёный    schedule 13.04.2014
comment
файл .rvmrc не нужен. gem update bundler сделал свое дело. Спасибо   -  person stecd    schedule 13.04.2014
comment
Я обновил Gemfile, затем запустил Bundle install и у меня все заработало.   -  person Ivan Carrasco Quiroz    schedule 05.02.2019
comment
Что-то вроде мозгового пука с моей стороны, но я получил эту ошибку при запуске docker-compose build, потому что Dockerfile начинался с более старой версии Ruby, чем использовалась в других местах.   -  person beyondtheteal    schedule 06.02.2019


Ответы (22)


Бегать

gem install bundler

or

gem update bundler 

который может решить вашу проблему.

Для всех новых установленных версий Ruby вы должны обновить или установить новый сборщик.

person Зелёный    schedule 13.04.2014
comment
Я сталкиваюсь с точно такой же проблемой, но это не решает ее для меня. Не могли бы вы подробнее рассказать, почему это сработает? После установки бандлера я все еще получаю Your Ruby version is 2.0.0, but your Gemfile specified 2.0.0-p645. rbenv даже не имеет 2.0.0. - person Joost; 27.07.2015
comment
ха. это даже сработало для моей проблемы 2.0.0 и 2.2.4, хотя я получил сообщение Nothing to update при обновлении сборщика. ¯_(ツ)_/¯ - person manmal; 11.03.2016
comment
Была та же проблема, в моем gemfile было указано 2.2.2, и у меня также был файл .ruby-version. rvm info также дал мне 2.2.2 - сборщик обновлений gem исправил ошибку :) не пришлось возиться с rbenv. - person Adam Cooper; 17.03.2016
comment
Если вы только что установили эту версию, перезапуск оболочки также может помочь. - person Courtney Pattison; 18.03.2017
comment
также получил сообщение Nothing to update, но gem update bundler сработало сразу. - person Mark Peterson; 29.03.2018
comment
то же самое здесь, получил сообщение «Ничего не обновлять», но оно как-то работает. не знаю почему... - person noobyz; 05.04.2020

В каталоге верхнего уровня вашего проекта создайте файл с именем .ruby-version, содержащий (подождите...)

2.1.0

По-видимому, сейчас это кросс-{rbenv,rvm} способ определения версии.

person Clay Bridges    schedule 14.05.2014

Если вы получили это в проекте Rails и недавно обновили версию Ruby, возможно, у вас все еще работает spring. со старой версией Ruby.

./bin/spring stop

исправит это.

person Myers Carpenter    schedule 04.03.2015

Для меня ни один из ответов не помог. Я исправил закрытие и открытие терминала снова.

person Juan José Ramírez    schedule 07.03.2018
comment
Это сработало и для меня, однако имейте в виду, что это связано с тем, что в окне терминала, в котором мы находились, был загружен какой-то другой источник. Наш исходный код по умолчанию заработал. - person KazaJhodo; 28.08.2018

Ни одно из других предложений не работало для меня. На сервере мне нужно было сделать:

rvm --default use [correct version number]

person Loren    schedule 24.01.2019

brew cleanup ruby у меня сработало, так как я использую HomeBrew для установки Ruby.

Недавно я обновил Ruby через HomeBrew, но HomeBrew не удалил старую версию. brew cleanup ruby удалит старую версию Ruby.

person ethicalhack3r    schedule 01.10.2018

Если вы используете Capistrano, вам также следует проверить файл deploy.rb на наличие конфигурации set :rbenv_ruby.

person Darme    schedule 26.11.2014
comment
или это может быть в Capfile - person Jerome; 07.04.2017

Я получил это после обновления с помощью ruby-install. Исправлено это с помощью:

gem install bundler

с последующим:

$HOME/.rubies/ruby-2.4.1/bin/bundle

Нет необходимости указывать путь, так как which bundle указывает, что он уже использует этот путь. Но выдает ошибку версии при запуске bundle без пути. Я не знаю, почему?

person mahemoff    schedule 21.04.2017

Спасибо за информацию об установке/обновлении бандлера, но у меня это не сработало. Я должен был сделать rbenv rehash

person MarkP    schedule 26.07.2018
comment
Это, которому предшествовал ответ Тимо, сработало для меня в Ubuntu. - person eddz; 05.10.2020

Если вы используете rbenv для управления средами ruby, вы можете запустить rbenv local 2.1.0 в каталоге вашего проекта, чтобы установить версию ruby, которую запрашивает ваш gemfile.

person Thiemo    schedule 09.09.2017

НИ ОДИН из приведенных выше ответов не сработал для меня, но

$ gem pristine --all

сделал трюк для меня

Буона Фортуна

person Salomanuel    schedule 22.01.2019

Я боролся с чем-то очень похожим, просто разные версии. В конце концов я исправил это, перейдя на RubyGems и поместив последнюю версию сборщика в свой gemfile, который в настоящее время :

gem 'bundler', '~> 2.1', '>= 2.1.4'

Проблема все еще была, но после этого я побежал:

gem update --system

И он разрешил перепутанные версии Ruby в папке проекта rails. Возможно, перед этим вам придется перезапустить терминал. Кроме того, я закомментировал файл gem-пакета, похоже, команда gem update --system действительно решила проблему.

Я получил его от здесь:

person Dan    schedule 29.01.2020

основной причиной этой проблемы является то, что ваша машина и gemfile используют другую версию ruby.

поэтому существует несколько проблем и решений для этой проблемы, вы можете попробовать приведенные ниже решения одно за другим.

1- убедитесь, что ваша машина установила и использует ту же версию вашего gemfile, если ваша машина не использует ту же версию, попробуйте установить эту версию с помощью rvm

$ rvm install ruby_version_you_want

убедитесь, что версия успешно установлена ​​с помощью этой команды

$ rvm list

и если новая версия не установлена ​​по умолчанию, вы можете установить ее с помощью этой команды

$ rvm --default use ruby_version_you_want 

вы можете проверить текущую рубиновую версию

 $ rvm current 
 $ ruby -v 

2- если у вас такая же проблема, проверьте свой упаковщик

  $ gem install bundler
    or
  $ gem update bundler 

3- в некоторых случаях Spring все еще использует старую версию, поэтому вам нужно ее остановить

$ ./bin/spring stop

4- еще один случай, который вы можете ввести

$ gem pristine --all 

и попробуй еще раз установить бандл

5- также в некоторых случаях после установки обновленной версии ruby ​​вам просто нужно перезагрузить терминал.

6- другое решение, но я не рекомендовал его в каталоге верхнего уровня вашего проекта, создайте файл с именем .ruby-version, содержащий вашу активную версию ruby.

7- если у вас все еще есть эта проблема, попробуйте удалить рубин и установить только обновленную версию

 $ aptitude purge ruby 
person Mohamed Naser    schedule 12.02.2020

Для более продвинутых проектов поддерживается .versions.conf, где может быть указано больше, чем версия Ruby.

Создание .versions.conf:

rvm --create --versions-conf use 1.9.3@my_app

Пример .versions.conf:

ruby=jruby-1.6.8
ruby-gemset=my_app
env-JRUBY_OPTS=--1.9
person user5315333    schedule 09.09.2015

Убедитесь, что конфигурация вашего сервера указывает на правильную установку ruby.

Я уже обновил свою версию Ruby в файле .ruby-version, и это не помогло. ruby -v тоже показал правильную версию, но я забыл обновить конфиг сервера.

Например, с rbenv, NGINX и Pushion Passenger в моем блоке сервера NGINX было:
passenger_ruby /Users/myusername/.rbenv/versions/2.3.1/bin/ruby;

И мне нужно было перейти на...
passenger_ruby /Users/myusername/.rbenv/versions/2.3.3/bin/ruby;

Затем перезапустил NGINX, и все заработало.

person Allen    schedule 05.08.2017

Это может произойти, когда вы устанавливаете новую версию ruby ​​​​и обновляете .ruby-version и Gemfile до новой версии, не устанавливая сначала все драгоценные камни для новой версии ruby. Так что

$ bundle install

и вам также может понадобиться источник .profile или перезапустить оболочку.

person Ken Ratanachai S.    schedule 17.12.2018

Если вы используете rbenv, просто запустите

rbenv local 2.0.0 

потом

bundle install
person Mustapha Babatunde    schedule 26.07.2020

Была такая же ошибка. Выполнение следующего исправлено. Я использовал ruby ​​2.5.5 и rbenv. Обновлен с 2.5.1.

  • rbenv перефразировать
  • упаковщик удаления драгоценных камней
  • упаковщик установки драгоценных камней
  • сборщик установки gem: 1.17.3 (моему приложению требовался специальный сборщик -v 1.17.3)
  • жемчужина установить рельсы
person Andrius Svylas    schedule 13.05.2019

Я решил эту проблему, обновив рубиновую версию до ruby '2.4.0' Затем bundle install

person nourza    schedule 12.08.2020

Я открыл Gemfile и заменил 2.7.1 своей собственной версией ruby ​​2.7.0 Сейчас все в порядке.

person Oğuzhan Filiz    schedule 10.10.2020

Простое закрытие терминала, над которым я работал, и открытие нового сработало для меня. Иногда обновления не вступают в силу немедленно, пока сеанс не будет закрыт. Я нашел это как случай со многими ошибками рельсов, с которыми я столкнулся.

person Oluebube Princess Egbuna    schedule 23.11.2020

Я сталкиваюсь с сообщением об ошибке

Your Ruby version is 2.5.1, but your Gemfile specified 2.3.0

и решается следующими шагами:

  1. откройте Gemfile, который находится в вашем каталоге.
  2. измените ruby '2.3.0' на ruby '2.5.1' и сохраните Gemfile
  3. вернитесь к элементам и запустите обновление пакета.

вопрос прекрасно решен.

person Jerome Li    schedule 22.05.2018
comment
Это не решение. Это обходной путь. Что делать, если коду требуется версия 2.3.0 в обязательном порядке. - person JaydeepW; 06.08.2018
comment
Это ужасная идея просто изменить проект, требуемый рубиновой версией. Многие вещи могут перестать работать. Разработчик должен использовать рубиновую версию проекта. - person Leticia Esperon; 07.08.2018