Ruby возвращается к старой версии после того, как стал root в ubuntu с установленным rvm

#ruby-on-rails #ruby #ubuntu #rvm

#ruby-on-rails #ruby #ubuntu #rvm

Вопрос:

После того, как стал root (с su root), ruby автоматически возвращается к старой версии 1.9.2-p180. После выхода из root ruby автоматически возвращается к более новой версии, которая является 1.9.2-p290.

в системе установлен rvm, а p290 был установлен с помощью rvm. p180 был установлен с помощью apt-get.

Есть мысли? Спасибо.

Комментарии:

1. Если root использует системный ruby, то, возможно, вы инициализируете среду root для использования rvm?

Ответ №1:

Поскольку пользователь root имеет среду, отличную от вашего обычного пользователя, вы, вероятно, захотите использовать rvmsudo ее всякий раз, когда используете rvm в корневом контексте. Эта команда специально сохраняет версию Ruby, используемую в настоящее время.

Комментарии:

1. rvmsudo использует 1.9.2 —по умолчанию с ошибкой: команда rvmsudo не найдена.

2. rvmsudo то же sudo самое, что и при rvm сохранении среды. Вы бы сделали: rvmsudo {command} или в этом случае rvmsudo rvm use 1.9.2 --default

3. rvmsudo rvm использует 1.9.2 — по умолчанию установил gem bundler как обычный пользователь (вместо root). Спасибо.

Ответ №2:

используйте .rvmc в корне каталога проекта с содержимым

 rvm use ruby-<version>@<gemset>
  

У меня, например, установлен ruby-1.9.2-p290, и я создал gemset rails 311 для rail 3.1.1, поэтому содержимое моего файла .rvmc

 rvm use ruby-1.9.2-p290@rails311
  

Ответ №3:

сначала проверьте, установлен ли rvm для всей системы или для конкретного пользователя. если он установлен для определенного пользователя, вы должны использовать системный ruby при использовании root. вы можете проверить это, введя rvm, находясь на root-пользователе

обычно rvm устанавливается для определенного пользователя.

Вам следует обновить системный ruby, если вы хотите использовать ruby 1.9.2-p290