Проблемы с пониманием RVM, гемов и общей настройки среды Ruby on Rails - PullRequest
0 голосов
/ 15 января 2012

Я прочитал несколько вопросов и ответов по этому вопросу, но все еще в замешательстве. Я новичок в Linux и новичок в программировании, так что имейте это в виду.

Я понимаю, что Ruby Gems похож на apt-get. Это менеджер пакетов - правильно?

Так что, если я хочу установить или удалить гемы, я могу сделать это с помощью команды вроде: sudo gems install {имя гема}

Так что же такое RVM? Зачем мне это использовать? Разве Ruby Gems не делает то, что делает RVM? Почему тогда Ruby Gems устанавливается вместе с RVM?

Кроме того, при указании драгоценных камней в Gemfile проекта, затем с использованием упаковщика для обновления и т. Д. Происходит ли загрузка драгоценных камней только в этот проект или они теперь будут доступны во всех проектах?

Кроме того, что такое $ PATH? Я не знаю много об этом, поэтому, когда я читаю об этом, я не понимаю, что такое правильный $ PATH, что если мне нужно что-то сделать для управления ссылками в $ PATH и т. Д. Может ли кто-нибудь объяснить или указать на какое-либо ресурсы для начинающих?

И, наконец, я использую различные учебные пособия, и они отличаются по версиям для всего: от Ruby до Rails и Gems. а) Должен ли я изменить свою среду в соответствии с версией, которую они используют? б) Как только я закончу с учебником, я должен оставить все версии в покое, или я должен попытаться обновить все до последней и самой лучшей версии?

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

Заранее спасибо, что нашли время помочь. Приветствия.

Ответы [ 2 ]

2 голосов
/ 15 января 2012

Этот вопрос очень широкий, поэтому я решил попытаться сбалансировать ясность с краткостью. Если кто-то найдет что-то не так с ответом, пожалуйста, скажите, и я прямо скажу:)

RVM - менеджер версий Ruby. Гипотетически, некоторые проекты могут требовать запуска ruby ​​1.9, другой устаревший проект может потребовать 1.8. RVM позволяет устанавливать обе установки параллельно, а не одну авторитетную версию ruby ​​на уровне системы. Это облегчает установку более поздних версий ruby, не боясь что-либо сломать или вмешиваться в требования к версиям ruby ​​других учетных записей пользователей (поскольку обычно в вашем домашнем каталоге устанавливается RVM на уровне пользователя). Это даже позволяет вам попробовать новейшую версию ruby, не беспокоясь о чем-либо, поскольку вы всегда можете легко переключиться обратно.

Когда вы устанавливаете гем, он, как правило, становится доступным для вас везде, где вам доступна установка ruby, как и в любом проекте. Когда вы указываете гемы в своем Gemfile, вы в основном говорите, что независимо от того, какие гемы вы могли установить и их версий, для этого проекта требуется гем x версии 2.2, y версии 3.1 и z версии 1.1 , Если у вас еще не было этих драгоценных камней, он их устанавливает, если у вас их нет, но они устанавливаются.

Path - это переменная среды , которая позволяет операционным системам знать, где искать программы при их вызове. Если вы наберете someapp в терминале, как операционная система может узнать, где находится someapp ? Ну, он ищет его в любом из этих каталогов, поставляемых в $ PATH. Вы можете увидеть, что находится на вашем пути, выполнив echo $PATH в оболочке.

Что касается различных версий ruby, это возвращает меня к причине RVM. Вы можете, если хотите, установить версию ruby, которую они используют, а затем в своем Gemfile указать конкретную версию гемов, используемых в учебниках, и у вас все будет хорошо. Вы можете установить разные версии гемов, и вы можете установить разные версии ruby ​​благодаря RVM.

Лично я бы рекомендовал работать над последней версией всего, чтобы она оставалась актуальной. Например, было бы контрпродуктивно работать над учебником, который использует Rails 2, так как он сильно изменился, когда перешел на 3, и несколько с 3 на 3.1 и выше и т. Д. Если возможно, используйте последние версии или, по крайней мере, знайте о нюансы (базовый материал имеет тенденцию оставаться более или менее неизменным), чтобы вы не работали над учебником, который старше, только чтобы приступить к работе над собственным проектом с последней версией всего и не заставить его работать.

Простое решение вашей дилеммы: отбросьте слишком старые учебники. Существует множество ресурсов, которые вы обязательно найдете в актуальном состоянии. В худшем случае датированный материал обычно имеет поддержку сообщества в виде комментариев, в которых говорится об изменениях между датированной версией чего-либо и соответствующей последней версией. Например. «имейте в виду, что хаха. что изменилось на lol.wut в версии 3.1»

0 голосов
/ 15 января 2012

Я могу понять, что это сбивает с толку, RubyGems, как вы пишете менеджер пакетов.RVM - это инструмент, который позволяет установить несколько версий ruby ​​в вашей системе и легко переключаться между ними.

Если вы используете различные учебные пособия, и они отличаются по версиям для всего: от Ruby до Rails и Gems, вы можете (если хотите) создать Gemset RVM для используемой версии.Затем вы создадите песочницу для использования Gems Bundler в вашем проекте.

Bundler - это инструмент для управления драгоценными камнями, от которых зависит ваше приложение.В старые времена, предшествовавшие Bundler, было непросто выяснить, от каких драгоценных камней зависит ваше приложение.Теперь Бандлер сделает это за вас.

И Bundler, и RVM - это инструменты, которые не являются абсолютно необходимыми для использования, но они помогут вам.Лично я больше не использую RVM.На мой вкус это большая часть монстров, поэтому я использую вместо них rbenv.

Относительно того, какие версии Rails использовать, я согласен, что вы должны попытаться использовать версии 3.1, если это возможно, но если вы найдете пример приложения, использующего Rails 3.0, вам не нужно его обновлять.Также вам не нужно запускать абсолютно последнюю версию Rails.В Rails 3.1 есть много исправлений ошибок, которых не могло быть в последних версиях Rails 3.1.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...