Преимущества RVM

Почему я/не должен использовать RVM?

Я новичок в рубиновом языке и серверах в целом. У меня возникли проблемы с установкой с использованием RVM... поэтому я склонен не использовать его прямо сейчас, но похоже, что это может облегчить установку в будущем?

Мне интересно узнать о вашем опыте работы с RVM и ваши мысли, поскольку он относится к поддержке сервера.

Ответ 1

RVM полезен, даже если вы не хотите устанавливать несколько версий одновременно. Я рубиновый любитель (PHP в течение дня:(), и у меня нет причин использовать старые версии, но я все еще использую RVM.

Установка рубина - это боль. Получение его из диспетчера пакетов (по крайней мере, в ubuntu) дает устаревшую версию, которая меняет установочные каталоги по умолчанию. У меня не было ничего, кроме проблем с ним.

Итак, вы думаете: "Я просто построю его из источника". Для построения из источника требуется загрузка зависимостей и параметров настройки. Часто я создавал рубин только для того, чтобы узнать, что я забыл включить поддержку SSL или поддержку readline.

RVM заботится обо всем этом. В 3 или около того командах вы имеете совершенно построенную версию ruby.

И я даже не рассматривал, как RVM управляет несколькими рубиновыми установками для вас, что является его функцией убийцы. Если у вас есть эта потребность, на самом деле нет другого разумного решения.

Ответ 2

RVM замечательный, так как это позволяет вам устанавливать разные версии, не касаясь установки по умолчанию в Ruby. Он довольно похож на virtualenv на Python.

Еще одно большое преимущество в том, что RVM - это gemset - вы можете создать столько гемземов, которые уникальны для версии, и уровня исправления рубинов.

Я превозносил некоторые из своих добродетелей здесь, и вы также должны см. это сообщение в блоге.

В плане обслуживания сервера - например, возьмите Passenger; помните, что Passenger установлен как драгоценный камень, поэтому с rvm преимущество здесь в том, что вы можете иметь несколько инсталляций пассажира, привязанных к другой версии рубина. Конечно, обычно у вас будет Пассажир, работающий по одной версии за раз, хотя есть способы иметь Пассажира, в частности, работать на разных версиях ruby.

Ответ 3

Я использую разные версии Ruby для разных проектов (что очень удобно для использования .rvmrc). Некоторые среды развертывания довольны 1.9, в то время как по некоторым причинам существует несколько устаревших серверов, использующих 1.8. Кроме того, иногда я хочу запустить определенную версию ruby, чтобы сравнить, как они работают. RVM делает все это для меня.

Ответ 4

Когда вы впервые привыкаете к Ruby, это может быть не совсем необходимо. Тем не менее, то, что он делает, заставляет вас добиваться успеха в будущем. Потому что, как только вы попадете на крючок, вы можете закончить игру с проектами, которые должны перемещаться, скажем, с MRI 1.8.x до 1.9.x. Или от 1.9.x, до JRuby 1.6.x. Мой опыт в том, что это происходит нерегулярно, но когда это происходит, нет никакой замены для RVM.

Кроме того, другой самой большой функцией, которую я использую регулярно, является способность сегментировать один конкретный выпуск. Поэтому у меня может быть среда для "стабильных" драгоценных камней и среда для "неустойчивых" драгоценных камней. Например, в то время как Rails 3.1 находится в режиме выбора кандидата, у меня было одно основное рабочее пространство для 1.9.2 и отдельное пространство для Rails 3.1.rc? драгоценные камни на 1.9.2. Это позволяет мне продолжать разрабатывать основные материалы Rails 3.0 (с одной командой в CLI), без необходимости указывать полные пути к файлам в соответствующих файлах rails bin, чтобы использовать старые файлы.

Ответ 5

Если вы используете платформу на базе Debian, где пакеты/политика ведут к действительно плохой установке по умолчанию, у вас будет лучший опыт использования rvm.