Рельсы - установка драгоценного камня - PullRequest
1 голос
/ 31 июля 2011

Быстрый вопрос об установке гемов - когда я использую bundle install, я знаю, что он устанавливает гемы, необходимые для моего индивидуального проекта, но это не влияет на другие проекты на моем компьютере.Если я использую gem install name_of_gem, это также повлияет только на текущий проект или на все проекты на моем компьютере с использованием rails (общая установка)?В общем, я думаю, что меня немного смущает, как именно работает установка gem, поэтому, если ваш ответ может включать некоторую общую информацию, которая поможет мне понять это, было бы здорово!

Ответы [ 2 ]

1 голос
/ 31 июля 2011

Да, гемы обычно устанавливаются в масштабе всей системы, или в вашем домашнем каталоге это невозможно.По умолчанию, когда ваше приложение использует гем, RubyGems загружает последнюю установленную версию.Если вы хотите использовать определенную версию, RubyGems позволяет сделать это с помощью следующего синтаксиса:

require 'rubygems'
gem 'RedCloth', '3.0'

Bundler - это полезный инструмент, который отслеживает версии гема, которые используются для разработки проекта, а затемпозволяет вам установить их одним махом с bundle install, а также загрузить эти точные версии.Приложение загружает их, загружая код Bundler, который переопределяет части RubyGems для использования версий, указанных в Gemfile.

По умолчанию Bundler просто вызывает RubyGems для установки гемов (опять же, в масштабе всей системы или в вашем homedir).).Вы можете попросить его сохранить драгоценные камни в каталоге с именем vendor/cache, используя bundle package.Это позволяет вам «заморозить» драгоценные камни, чтобы вы могли распространять их с исходным кодом.

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

Я бы рекомендовал прочитать документы для RubyGems и Bundler ;они оба довольно хороши.

1 голос
/ 31 июля 2011

Когда вы делаете пакетную установку, гемы установлены на rubygems и будут доступны для всех ваших проектов, если вы не используете RVM и не настраивает наборы гемов для своих проектов.

Когда вы не используете RVM и выполняете установку гема ваша операционная система, вероятно, собирается установить гем в файлы вашего текущего пользователя (обычно ~ / .gem), если вы sudo install gem он будет установлен везде, где установлена ​​ваша система Ruby.

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

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