Подтвердить что ты не робот

Является ли общесистемная установка RVM плохим идеей?

Я запутался в том, что на сервере вы должны установить RVM в качестве обычного пользователя или выполнить общесистемную установку, а в последнем случае, как вы должны делать такие вещи, как bundle install без использования sudo.

Есть ли какой-то определенный набор рекомендаций относительно того, что вы должны делать, насколько это касается RVM на сервере, на котором запущены Rails, например, Пассажир и Nginx? В этом типе среды не все процессы Ruby работают под одним и тем же пользователем, поэтому я думаю, что там, где ситуация становится неясной в отношении RVM и bundler, есть.

Как насчет того, чтобы просто избежать RVM на сервере и просто установить Ruby и gems старомодным способом? Это предпочтительнее, если вы можете избежать этого?

4b9b3361

Ответ 1

Вы можете установить RVM в качестве обычного пользователя, хотя я не вижу смысла. Bundler - для каждого приложения и не нуждается в привилегиях sudo, поскольку он может установить ваши драгоценные камни в каталог пакетов, к которому может обратиться пользователь установки пакета:

bundle install --deployment

который поместит их в vendor/bundle по умолчанию.

Я считаю RVM инструментом разработки нескольких рубиновых версий. На машинах развертывания я стараюсь либо использовать систему Ruby, либо установить из источника.

Ответ 2

Я очень рекомендую сделать общесистемную установку для производственной среды. Запуск пользовательских RVM просто кажется огромной проблемой. Я использую Passenger/Nginx в производстве, и каждый проект имеет своих пользователей. Все, что мне нужно сделать, это добавить их в группу rvm, и я готов идти.

Ответ 3

RVM может быть установлен как суперпользователь. Хотя это не обязательно, для этого есть много преимуществ (особенно в многопользовательской системе). Любые команды, которые поставляются с Ruby (и соответствующими Ruby Gems), должны правильно настроить свои разрешения для правильной работы. Bundle не требует использования суперпользователя. Он может работать под конкретным пользователем, так же как установка gem может быть локальной для пользователя или системы, когда выполняется с полным sudo.

RVM управляет вашими конкретными установками Ruby, так что вы можете разрабатывать на нескольких уровнях Ruby-From RMI 1.8 и 1.9 до JRuby 1.6 и так далее. У вас могут быть разные проекты, над которыми вы работаете, и поэтому вам нужны разные потребности в проекте.

Насколько на самом сервере идет (при условии, что это внешний сервер с каким-то контентом на нем), это действительно зависит от системных администраторов. Вариант использования несколько меняется. Если вам нужен только Ruby 1.9 на сервере, для RVM действительно не нужно. Поскольку управление несколькими версиями Ruby не требуется. Поэтому я бы взял это на учет, когда вы решите, следует ли использовать систему на самом сервере.

Надеюсь, что это поможет!