Ruby Gemfile не съвпада с Ruby версия, но съвпада с ruby ​​-v изход

Имам приложение за релси и съм доста нов релс.

Основният ми проблем е, че съм на производствен сървър и не мога да стартирам bundle. Дава тази грешка:

Your Ruby version is 1.9.3, but your Gemfile specified 2.1.7

И така, опитах се да използвам rbenv, но не беше успешно, както може да се види по-долу.

$:/home/deploy/my-app/current$ rbenv global 2.1.7

$:/home/deploy/my-app/current$ bundle
Your Ruby version is 1.9.3, but your Gemfile specified 2.1.7

$:/home/deploy/my-app/current$ ruby -v
ruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-linux]

Използването на RVM изглежда е това, което другите използват в други въпроси, но аз наистина искам само една версия на ruby ​​да работи (тази, която е посочена)

Този сървър ще бъде производственият, но в момента не е активен.

РЕДАКТИРАНЕ 1: gem install bundler

Опитах да инсталирам пакет, докато бях в ruby ​​2.1.7, но това не проработи.

Ето какво направих:

$:/home/deploy/my-app/current$  ruby -v
ruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-linux]
$:/home/deploy/my-app/current$  gem install bundler 
Fetching: bundler-1.11.2.gem (100%)
Successfully installed bundler-1.11.2
Parsing documentation for bundler-1.11.2
Installing ri documentation for bundler-1.11.2
Done installing documentation for bundler after 4 seconds
1 gem installed
$:/home/deploy/my-app/current$  bundle
Your Ruby version is 1.9.3, but your Gemfile specified 2.1.7

РЕДАКТИРАНЕ 2 which bundle

 $:/home/deploy/my-app/current$ which bundle
/usr/local/bin/bundle

person Rorschach    schedule 22.01.2016    source източник
comment
Какво показва which bundle? Възможно е да нямате инсталиран Bundler във 2.1.7, но той е в 1.9.3 (което подозирам, че е версията на Ruby, предоставена от ОС), и тази версия се намира, когато стартирате bundle. Може просто да трябва да gem install bundler в 2.1.7.   -  person matt    schedule 23.01.2016
comment
which bundle дава: /usr/local/bin/bundle @matt   -  person Rorschach    schedule 23.01.2016
comment
Използвате ли Bash като своя обвивка? След като инсталирате bundler, опитайте да стартирате hash -r (или алтернативно започнете нова сесия). Вашата обвивка може да е кеширала пътя до старата версия на bundle, така че все още може да я получавате вместо новата.   -  person matt    schedule 23.01.2016
comment
Мисля, че това може да е бил проблемът, съвсем наскоро го накарах да работи и мисля, че е резултат от моето рестартиране на терминала. @мат   -  person Rorschach    schedule 23.01.2016


Отговори (1)


Опитайте се да създадете файл с .ruby-версия, като посочите ruby ​​версия 2.1.7. Когато влезете в директорията на проекта, rbenv ще използва правилната ruby ​​версия. След това влезте отново в директорията на проекта и изпълнете bundle exec bundle.

person Alex Buschle    schedule 22.01.2016
comment
знаете ли къде бих сложил файла .ruby-version? - person Rorschach; 23.01.2016
comment
@Rorschach, трябва да поставите файла с .ruby-версия в домашната директория на приложението rails. Източник: github.com/rbenv/rbenv#choosing-the-ruby-version - person sarav; 23.01.2016