Ваша версия 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?

24 ответа

Решение

Бежать

gem install bundler

или же

gem update bundler 

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

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

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

2.1.0

Это, очевидно, является перекрестным{rbenv,rvm} способ спецификации версии сейчас.

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

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

./bin/spring stop

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

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

rvm --default use [correct version number]

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

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

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

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

1.Убедитесь, что на вашем компьютере установлена ​​и используется та же версия вашего гем-файла, если на вашем компьютере не используется тот же самый, попробуйте установить эту версию с помощью 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- в некоторых случаях весна все еще использует старую версию, поэтому вам нужно остановить ее

$ ./bin/spring stop

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

$ gem pristine --all 

и попробуйте снова установить пакет

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

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

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

 $ aptitude purge ruby 

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

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

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

gem install bundler

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

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

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

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

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

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

gem update --system

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

Я получил это отсюда:

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

$ gem pristine --all

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

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

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

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

Убедитесь, что конфигурация вашего сервера указывает на правильную установку 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 и все заработало.

Для более продвинутых проектов поддерживается.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

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

rbenv local 2.0.0 

потом

bundle install

Была такая же проблема, и я работаю с rbenv

Вот шаги, которые помогли мне решить мою проблему:

  1. Сначала в терминале введите . Для меня это дало: / usr/local/bin/bundle

  2. Снова в терминале попробуйте which ruby. В моем случае это дало: /Users/Mahmoud/.rbenv/shims/ruby

Таким образом, проблема здесь в том, что пакет не использует ту же версию ruby ​​из rbenv. Так что путь нужно исправить. Другими словами, мне нужно указать своему терминалу использовать версию пакета rbenv, когда я использую установку пакета.

Итак, шаг 3. Для меня лично я уже установил путь:

      export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"

но, видимо, этого было недостаточно, так как я использовал zsh. Пришлось добавить те же самые 2 строки.

  1. Перезапустить терминал

В настоящее время bundle installработает как положено и which bundleдает:


что указывает на то, что проблема заключалась только в том, что пакет использовал не тот рубин.

Поэтому, если у вас есть эта проблема, просто убедитесь, ~/.bash_profileа также ~/.zshrcиметь правильный путь, добавив 2 строки, указанные выше. Если это не сработало, глубоко погрузитесь в пути, чтобы убедиться, что перед запуском какой пакет дает эквивалент:

      /Users/Mahmoud/.rbenv/shims/bundle

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

$ bundle install

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

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

Я очищаю и устанавливаю с этим:

sudo gem pristine --all

и установить снова:

bundle install

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

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

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

Я сталкиваюсь с ошибкой

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. вернуться к пунктам и запустить обновление пакета.

проблема отлично решена.

Другие вопросы по тегам