То, как я это делаю сейчас (хотя и немного экспериментирую), таково:
Используйте RVM для настройки версии ruby и набора гемов для приложения.Я использую .rvmrc-файл в корне каталога приложения, чтобы убедиться, что правильный ruby и gemset используются постоянно.
Bundler устанавливается с использованием gem без sudo в даннойgemset.
Любые драгоценные камни, необходимые для приложения, добавляются в Gemfile приложений и устанавливаются с помощью Bundler.Для этого я не использую sudo.
Таким образом, я использую Bundler для отслеживания зависимостей для каждого приложения и RVM для изоляции гемов каждого приложения друг от друга.Работает действительно гладко, на самом деле.
Я еще не установил RVM на моем сервере развертывания, там я просто использую Bundler, чтобы убедиться, что все зависимости приложений обрабатываются.Вероятно, я также установлю RVM там, но сначала нужно выяснить, как он играет в мяч с Пассажиром.
Что касается вашего последнего вопроса, Bundler - обертка вокруг драгоценного камня, RVM просто манипулирует гемпатом, где установлены драгоценные камни.,Кажется, он достаточно умен, чтобы собирать драгоценные камни из того же места, поэтому мне не нужно перекомпилировать те, которые уже установлены в другом наборе.
Я перестал использовать sudo для установки драгоценных камнейпосле начала использования RVM.Там действительно нет никаких причин, просто установить их в пути пользователя rvm.Я не уверен насчет лучшей практики, если у вас на одной машине больше разработчиков, таких как тестовый сервер или что-то в этом роде.