Как установить гемы Ruby при использовании RVM? - PullRequest
38 голосов
/ 22 апреля 2011

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

Одним из примеров является RubyGems.учебное пособие здесь: http://rubygems.org/pages/download

Должен ли я загрузить тот tar-файл, о котором они говорят?Кажется ненужным, потому что это то, что я думал, для RVM.Нужно ли мне даже RubyGems?Что это на самом деле?

Кроме того, как я могу получить Rails?Есть ли точная команда RVM для загрузки и установки Rails?

Ответы [ 3 ]

49 голосов
/ 22 апреля 2011

Это помогает мне думать о RVM как об уровне абстракции между вами и рубиновой экосистемой.

Без RVM: ruby, gems и связанные с ruby ​​двоичные файлы (такие как rake, spec, gem и т. Д.) Устанавливаются непосредственно в каталоги вашей операционной системы.

В RVM: материал, связанный с ruby, перехватывается rvm, так что ruby, gems и связанные с ruby ​​бинары «устанавливаются» в ~ / .rvm dir красивым, чистым, организованным способом.RVM находится между ruby, gems и соответствующими двоичными файлами и операционной системой.Он предоставляет способ иметь несколько сред ruby ​​(с разными гемами и двоичными файлами) на одном компьютере.

Таким образом, независимо от того, установлен ли у вас rvm или нет, вы сможете выполнять команды почти точно (*), как они появляются в любых руководствах в Интернете.Другими словами, вы можете «забыть», что RVM установлен;рубиновая экосистема должна работать так же, как если бы она не была установлена.

Так что, да, вам придется запустить gem install rails и т. Д.

Надеюсь, что это поможет устранить путаницу.

(*) Есть небольшие отличия.Например: вы не должны запускать команды как sudo, когда установлен RVM.

11 голосов
/ 22 апреля 2011

Должен ли я загрузить тот tar-файл, о котором они говорят?

Нет.Ruby 1.9+ включает в себя драгоценные камни.RVM модернизирует его до 1,8+.

В общем, будьте осторожны с любыми указаниями в Интернете, объясняющими, как что-либо устанавливать, если у вас нет достаточного опыта, чтобы полностью понять, что они хотят, чтобы вы делали.В частности, в любое время, когда они хотят, чтобы вы установили что-либо с использованием sudo или с правами root.

В частности, при работе с RVM вы НЕ хотите использовать sudo для установки Ruby, или любого другогокамень .RVM работает, настраивая «песочницу» для вашей разработки и полагаясь на среду вашей учетной записи, изменяя ваш путь так, чтобы любые запросы Ruby направлялись в текущий выбранный RVM-управляемый Ruby или гемы или любые команды, которые они устанавливают.sudo отодвигает вашу обычную среду в сторону, временно заменяя root, устанавливает все, что вы просили сделать с разрешениями root, затем возвращается к вашей среде.

Когда вы запускаете команду или находите гем, как и вы, он не может быть найден Ruby RVM, потому что файл был установлен вне песочницы RVM, или он не может быть прочитан илимодифицированный, потому что он принадлежит root.Какой бы ни была действительная причина, конечным результатом будет плач и скрежет зубов.

RVM не подрывает функциональность gem.gem используется для установки и управления драгоценными камнями Ruby, а RVM настраивает его, чтобы использовать песочницу для всех его обработок.Вы получаете дополнительную функциональность благодаря поддержке RVM гемсетов, но gem работает как обычно, только у него есть «старший брат», RVM, контролирующий его мир.

4 голосов
/ 22 апреля 2011

Нет необходимости устанавливать rubygems. В RVM уже должны быть установлены рубины. RVM (на мой взгляд) полезен для управления различными установками ruby ​​(скажем, 1.8.7 и 1.9.2) или различными наборами гемов. Если у вас есть только одна версия ruby ​​и вас не интересуют разные наборы гемов, RVM на самом деле не так уж и велика. Если вы хотите просто установить рельсы, просто используйте gem install rails. Если у вас уже есть приложение rails 3, сначала установите пакет gem install bundler, а затем bundle install, чтобы получить rails и другие зависимости от гемов.

...