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

Я пытался установить пакет в рубине 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 в качестве оболочки? После установки упаковщика попробуйте запустить 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-версии? - person Rorschach; 23.01.2016
comment
@Rorschach, вы должны поместить файл .ruby-version в домашний каталог приложения rails. Источник: github.com/rbenv/rbenv#choosing-the-ruby-version< /а> - person sarav; 23.01.2016