#ruby-on-rails #ruby #ruby-on-rails-3 #rubygems #rvm
#ruby-on-rails #ruby #ruby-on-rails-3 #rubygems #rvm
Вопрос:
Я настроил RVM и использовал его для установки Ruby и нескольких других библиотек. Когда я просматривал различные руководства и настройки других технологий, таких как Rails, я начал путаться в том, что я должен делать через RVM, а что я должен просто делать, как предлагают руководства.
Одним из примеров является руководство по RubyGems здесь: http://rubygems.org/pages/download
Должен ли я загрузить тот tar-файл, о котором они говорят? Кажется ненужным, поскольку я думал, что RVM предназначен именно для этого. Нужны ли мне вообще RubyGems? Для чего это на самом деле?
Кроме того, как мне на самом деле получить Rails? Существует ли точная команда RVM для фактической загрузки и установки Rails?
Комментарии:
1. Я не понимаю, почему кто-то отметил это как субъективное или аргументированное. Очевидно, кто-то не потрудился прочитать вопрос.
Ответ №1:
Это помогает мне думать о RVM как о слое абстракции между вами и экосистемой ruby.
Без RVM: ruby, gems и связанные с ruby двоичные файлы (такие как rake, spec, gem и т.д.) Устанавливаются непосредственно в каталоги вашей операционной системы.
С помощью RVM: rvm перехватывает материалы, связанные с ruby, так что ruby, gems и связанные с ruby двоичные файлы «устанавливаются» в каталог ~ /.rvm красивым, чистым и организованным способом. RVM находится между ruby, gems и связанными двоичными файлами и операционной системой. Это обеспечивает способ иметь несколько окружений ruby (с разными gems и двоичными файлами) на одном компьютере.
Итак, независимо от того, установлен rvm у вас или нет, вы должны быть в состоянии выполнять команды почти точно (*), как они отображаются в любых руководствах в Интернете. Другими словами, вы можете как бы «забыть», что RVM установлен; экосистема ruby должна работать так, как если бы она не была установлена.
Итак, да, вам придется запустить gem install rails
и т.д.
Надеюсь, это поможет устранить путаницу.
(*) Есть несколько небольших отличий. Например: вы не должны запускать команды как sudo, когда установлен RVM.
Комментарии:
1. «вы должны иметь возможность запускать команды точно так, как они представлены в любых руководствах в Интернете.». Нет. Любой учебник, рекомендующий использовать
sudo
для установки gem, завершится ошибкой. В RVM конкретно указано » НЕ использовать sudo … «.2. @theTinMan Ваша ссылка не работает.
3. Тогда вы должны были добавить правильный в свой комментарий. В RVM конкретно указано » НЕ использовать sudo … «.
4. Да, это проблема с sudo, которая меня подкинула. Я так привык к sudo’ing всех своих gems и не мог понять, почему установки продолжали завершаться неудачей! Теперь я понял.
Ответ №2:
Должен ли я загрузить тот tar-файл, о котором они говорят?
Нет. Ruby 1.9 включает драгоценные камни. RVM модифицирует его для версии 1.8 .
В общем, будьте осторожны с любыми указаниями, которые вы найдете в Интернете, объясняющими, как что-либо установить, если у вас нет достаточного опыта, чтобы полностью понять, чего они от вас хотят. В частности, в любое время, когда они хотят, чтобы вы что-то установили, используя sudo
или как root.
В частности, при работе с RVM вы НЕ хотите использовать sudo
для установки Ruby или любой другой gem. RVM работает путем настройки изолированной среды для вашей разработки и зависит от среды вашей учетной записи, изменяя ваш path, чтобы любые запросы Ruby отправлялись к выбранному в данный момент RVM-управляемому Ruby или gems или любым командам, которые они устанавливают. sudo
отодвигает вашу обычную среду в сторону, временно заменяя root, устанавливает все, что вы просили, с правами root, затем возвращается к вашей среде.
Когда вы запускаете команду или находите gem, как вы, он не может быть найден RVM’s Ruby, потому что файл был установлен вне RVM’s sandbox, или его нельзя прочитать или изменить, потому что он принадлежит root. Какой бы ни была действительная причина, конечным результатом будет плач и скрежет зубов.
RVM не нарушает gem
функциональность. gem
используется для установки Ruby gems и управления ими, а RVM настраивает его так, чтобы использовать песочницу для всех своих махинаций. Вы получаете дополнительную функциональность из-за поддержки RVM наборов драгоценных камней, но gem
работает как всегда, только у него есть «старший брат», RVM, контролирующий его мир.
Ответ №3:
Нет необходимости устанавливать rubygems. RVM должен был уже установить rubygems. RVM (на мой взгляд) полезен для управления различными установками ruby (скажем, 1.8.7 и 1.9.2) или разными наборами драгоценных камней. Если у вас только одна версия ruby и вам наплевать на разные наборы драгоценных камней, RVM на самом деле не так уж сильно изменится. Если вы хотите просто установить rails, просто используйте gem install rails
. Если у вас уже есть приложение rails 3, сначала установите bundler, gem install bundler
а затем bundle install
, чтобы получить rails и другие зависимости gem.
Комментарии:
1. Итак, просто для согласованности, есть ли способ установить rails через RVM? Что делает «gem install rails»? Использует ли он ruby install, который знает, как установить / загрузить rails? Как все это работает? лол
2. Сделайте
rvm gemdir
. Он сообщит вам, где будут установлены вещи сgem install
.gem install rails
затем будет установлен в этот каталог. Все установленные rubies находятся в~/.rvm/rubies
. Драгоценные камни находятся в~/.rvm/gems
. Фактически все, что связано с rvm, находится в~/.rvm
. HTH3. Ruby 1.9 устанавливает RubyGems как часть обычной установки. Для Ruby < 1.9 я думаю, что RVM будет полезен и включает драгоценные камни.