Глобально доступный Gemfile

У меня есть множество драгоценных камней, которые я использую во всех проектах Rails, но они не являются частью драгоценных камней проектов, например порошок для управления POW.

Для меня было бы разумно управлять ими с помощью глобального Gemfile, но я не вижу примеров этого.

Как мне управлять глобальными Gems, которые мне не нужны в gemfiles моего проекта? Было бы хорошо иметь единую точку установки, когда я настраиваю новую машину и т. д.

Я использую chruby вместе с ruby-install для управления версиями Ruby.


person Undistraction    schedule 06.12.2013    source источник
comment
Звучит как работа для RVM. stackoverflow.com/questions/4007171/   -  person Robin    schedule 06.12.2013
comment
@Sam К сожалению, я использую Chruby   -  person Undistraction    schedule 06.12.2013


Ответы (3)


Создайте Gemfile как обычно и поместите его в любую папку. Это не обязательно должна быть папка проекта. Тогда вы можете просто сделать:

bundle install --system

Это установит драгоценные камни в Gemfile для всей системы и запросит пароль root, если у вас нет доступа к системной папке.

--system: устанавливает драгоценные камни из пакета в системную папку. Это переопределяет любое предыдущее запомненное использование --path.

Вы также можете назвать свои Gemfile(ы), если хотите как-то организовать их, а затем выполните:

bundle install --system --gemfile Gemfile_name
person Casper    schedule 06.12.2013
comment
Я не понимаю, вопрос был How should I manage global Gems that I don't want in my project gemfiles?. Как этот ответ? - person Haris Krajina; 06.12.2013
comment
Спасибо. Как бы вы управляли драгоценными камнями для разных версий Ruby? Отдельный Gemfile для каждой версии Ruby? - person Undistraction; 06.12.2013
comment
@Dolphin Как это не ответ? - person Undistraction; 06.12.2013
comment
@Pedr Он установит драгоценные камни в систему, но они будут в gemfile проекта. Например, если вы запустите приложение Rails, все драгоценные камни будут в рамках проекта. Я уверен, что вам нужно было установить драгоценные камни в систему, не находясь в проекте Gemfile. - person Haris Krajina; 06.12.2013
comment
@Дельфин. Их нет в Gemfile проекта. Они находятся в отдельном Gemfile где-то в вашей системе. Смотрите мой ответ. Возможно, теперь вы могли бы удалить свой отрицательный голос из этого ответа, поскольку он правильный. - person Undistraction; 06.12.2013
comment
@Pedr Ahhh Я предполагал, что этот Gemfile (глобальный) будет в каталоге проекта вместе с проектом Gemfile, nvm, это плохо. - person Haris Krajina; 06.12.2013
comment
@Pedr Да, другой Gemfile звучит для меня довольно простым решением. Однако, если различия между Gemfiles невелики, вы можете рассмотреть директиву :platforms, которая может привязать конкретный гем к конкретной основной версии Ruby. Подробнее см. в руководстве по Gemfile: bundler.io/v1.5/man/gemfile. .5.html - person Casper; 06.12.2013
comment
@Каспер. Ага. Это намного приятнее. Я должен, вероятно, сесть и RTFM. - person Undistraction; 06.12.2013

В дополнение к ответу @Casper:

Я создал каталог для своих системных файлов Gem.

Затем я добавил каталог для каждой версии ruby, для которой я хотел установить системные драгоценные камни. Я добавил Gemfile в каждый каталог и файл .ruby-версии с правильной версией. Теперь я могу установить системные драгоценные камни для рубиновой версии, используя:

$ cd path/to/system_gems_dir/1.9.3-p484
$ bundle install --system

or

$ cd cd path/to/system_gems_dir/2.0.0-p353
$ bundle install --system
person Undistraction    schedule 06.12.2013

Вы можете создать GlobalGemfile файл (или как вы его назовете) и чем вы можете это сделать.

bundle install --gemfile GlobalGemfile

Круто не правда ли :)

person Haris Krajina    schedule 06.12.2013