1) root устанавливает версии ruby и гемы под RVM, если вы устанавливаете их глобально
(прочтите readme RVM - кажется, что возможны проблемы при глобальной установке!)
2) если вы работаете в UNIX, каждый из ваших системных процессов запускается как отдельный пользователь,
например в LINUX через init-скрипты в /etc/init.d/ ... пока процессы
созданный в качестве конкретного пользователя, сопоставление имен пользователей с UID / GID, домашний каталог,
и login-shell ищутся в файле / etc / passwd
- вот где оболочка входа (например, bash) определена для конкретного пользователя.
Итак, возвращаясь к вашему заявлению:
If server restarts and is at login screen and background daemons are serving apache/rails, etc.
and no .bashrc, etc. have loaded...how/where do we specify which of RVM's Rubies to load?
Вы видите проблему с этим утверждением?
Когда сервер запускается и запускаются фоновые процессы, каждый из них запускается как отдельный пользователь, с определенной оболочкой входа в систему и с определенным домашним каталогом.
RVM понадобится, чтобы у вас была установлена оболочка входа в систему / bin / bash - в противном случае она не смогла бы настроить среду RVM для любого из процессов, выполняемых этим конкретным пользователем. например RVM не будет работать, если вы используете / bin / nologin в качестве оболочки по умолчанию.
задачи1:
Это проблема безопасности, конечно! В общем случае для защиты демонов не следует устанавливать оболочку.
задачи2:
Вы не хотите, чтобы высокопроизводительные инструменты были доступны кому-то, взломавшему ваш сервер - вот почему у вас не должно быть cc и других инструментов на рабочем сервере - вот почему вы не должны компилировать ваши Rubys и Gems на рабочем сервере, а лучше скопировать каталог .rvm на рабочие серверы ...
Проблема 3: (более общий)
То, как RVM управляет всеми версиями Ruby и Gem, - очень очень хитрый подход к управлению версиями.
Использование специальных функций одной конкретной оболочки входа для облегчения управления версиями не очень хорошая идея - конечно, в данный момент нет ничего лучше, но в прежние времена идея, лежащая в основе Lude, была гораздо лучшим подходом для установки различных версий программного обеспечения. :
http://www.iro.umontreal.ca/contrib/lude/lude2_toc.html
Вывод:
Итак, как я упоминал в предыдущем посте, я настоятельно рекомендую настроить RVM для учетной записи обычного пользователя, чтобы запускать процессы Ruby и Rails и настроить эту одну учетную запись с / bin / bash в качестве оболочки входа в систему и скопировать вашу Каталог .rvm с вашего dev-сервера на ваши рабочие машины через scp или rsync - это лучший и более безопасный подход.