Вашата версия на 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
какъв мениджър на руби версия използвате rvm или rbenv?   -  person Зелёный    schedule 13.04.2014
comment
добавете .rvmrc с rvm use 2.1.0 > /dev/null в директорията на проекта. тази версия с рубин.   -  person Зелёный    schedule 13.04.2014
comment
Какво прави това? Добавих файл в моята proj директория, наречен .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
Сблъсквам се с абсолютно същия проблем, но това не го коригира за мен. Можете ли да разясните малко повече защо това би проработило? След като инсталирах bundler, все още получавам 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-версия файл. rvm info също ми даде 2.2.2 - gem update bundler поправи грешката :) не трябваше да се забърквам с 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
същото тук, получи съобщение Nothing to Update, но работи някак си. не знам защо... - 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
Това, предшествано от отговора на Thiemo, работи за мен в 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 и поставих най-новата версия на bundler в моя gemfile, който в момента е :

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

Все още имаше проблем, но след това стартирах:

gem update --system

И разреши смесените версии на Ruby в папката на rails проекта. Може да се наложи да рестартирате терминала, преди да направите това. Също така, коментирах gem файла на bundler, изглежда, че командата gem update --system е това, което наистина го разреши.

Получих го от тук:

person Dan    schedule 29.01.2020

основната причина за този проблем е вашата машина и gemfile, използващи различна руби версия

така че има множество проблеми и решения за този проблем, можете да опитате решенията по-долу едно по едно

1- уверете се, че вашата машина инсталира и използва същата версия на вашия gemfile, ако вашата машина не използва същата, опитайте се да инсталирате тази версия с помощта на rvm

$ rvm install ruby_version_you_want

уверете се, че инсталираната версия е успешна, като използвате тази команда

$ rvm list

и ако новата версия не е зададена като стандартна, можете да я зададете с помощта на тази команда

$ rvm --default use ruby_version_you_want 

можете да проверите текущата версия на ruby

 $ 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- ако все още имате този проблем, опитайте да премахнете ruby ​​и инсталирайте само актуализираната версия

 $ 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
  • пакет за инсталиране на скъпоценни камъни
  • gem install bundler:1.17.3 (приложението ми се нуждаеше от специфичен bundler -v 1.17.3)
  • релси за инсталиране на скъпоценни камъни
person Andrius Svylas    schedule 13.05.2019

Реших този проблем, като актуализирах моята ruby ​​версия до 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
Ужасна идея е просто да промените необходимата рубин версия на проекта. Много неща могат да спрат да работят. Разработчикът трябва да използва версията ruby ​​на проекта. - person Leticia Esperon; 07.08.2018