Rails не использует мою глобальную версию Ruby

Я хочу использовать Rails с Ruby 2.1.0, но он использует Ruby 1.9.3 (системная версия).

Я использую rbenv для управления моими версиями Ruby. Мои шаги были чем-то вроде:

$ rbenv install 2.1.0
$ rbenv global 2.1.0
$ sudo gem install rails -v 4.0.2
$ rbenv rehash
$ rbenv versions
  system
* 2.1.0 (set by /home/dennis/.rbenv/version)
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
$ rails new app && cd app
$ rails server

Rails использует Ruby 1.9.3 (x86_64-linux), согласно localhost:3000/rails/info/properties. Сообщение журнала из rails server дает: INFO ruby 1.9.3 (2012-04-20) [x86_64-linux].

Я думаю, что Rails использует системную версию Ruby, потому что версии соответствуют.

$ rbenv local system
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ rbenv local --unset  # Unset local Ruby version, go back to 2.1.0

Некоторые вещи, которые я пробовал без везения:

  • настройка локальных и оболочечных версий Ruby на 2.1.0 с помощью rbenv
  • rehash rbenv shims (rbenv говорит об этом после установки исполняемых файлов)
  • создал новые проекты Rails после переключения на 2.1.0 на всякий случай, когда я сделал проекты при использовании 1.9.3
  • вставьте 2.1.0 в файл .ruby-version в корень моего проекта (предложенный @Agis)
  • перезапуск сеанса терминала и запуск оболочки входа bash (предложенной @Russel)
  • указав желаемую версию Ruby в проекте Gemfile (предложенный @rlecaro2)

FWIW, я использую Ubuntu 13.10 с оболочкой рыбы.

Ответ 1

Вы не указали, как вы установили rbenv, но я думаю, что это установка для каждого пользователя (которая по умолчанию). В этом случае вы должны установить драгоценные камни, не используя sudo. Когда вы сделали sudo gem install rails, он был установлен в системном рубине, а не в rbenv, который был выбран.

Решение - установите рельсы без sudo:

rbenv global 2.1.0
gem install rails
rbenv rehash

Ответ 2

Звучит глупо, но вы перезапустили сеанс терминала?

В противном случае попробуйте и введите

 /bin/bash --login

Ответ 3

Попробуйте создать файл .ruby-version в корне вашего проекта со следующим содержимым:

2.1.0