Как установить гем на все гемсеты при использовании RVM - PullRequest
8 голосов
/ 03 января 2012

Есть ли способ установить гем во всех рубинах и наборах гемов (не только по умолчанию или системном рубине) в системе при использовании RVM?

Ответы [ 3 ]

8 голосов
/ 05 июля 2015

Вы можете выполнить:

rvm @global do gem install [gem_name]

для глобальной установки gem (для версии ruby).

невозможно установить gem глобально для каждой версии ruby ​​.

Согласно https://rvm.io/gemsets/initial вы можете определить автоматически установленные гемы для каждой версии ruby ​​в файле ~/.rvm/gemsets/global.gems. В этом файле вам нужно определить необходимые драгоценные камни (по одному на строку), например

bundler
zeus

Эти драгоценные камни будут устанавливаться каждый раз, когда вы добавляете новую версию ruby ​​в RVM.

6 голосов
/ 03 января 2012

Вы можете установить глобальный гемсет по умолчанию для каждого интерпретатора ruby, как указано здесь:

https://rvm.io/gemsets/global/

, а также на этой странице упоминаются наборы гемов по умолчанию

https://rvm.io/gemsets/using/

И было бы бесполезно устанавливать гем всем интерпретаторам ruby ​​из-за несовместимости между рубинами.

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

Просматривая документы по RVM, я не вижу способа сделать это специально.Однако вы можете аппроксимировать его с помощью комбинации @global gemsets и копирования с копированием gemset.

Глобальные gemsets предоставляют гемы, которые доступны для всех gemsets данного рубина.Например:

rvm install 1.9.3
rvm --create 1.9.3@rails3.0
rvm --create 1.9.3@rails3.1
rvm use 1.9.3@global
gem install sqlite3

создаст два разных набора гемов для рубина 1.9.3, и глобальный sqlite3 будет доступен в обоих.

Затем, как только вы это сделаете, вы можетескопируйте глобальный набор гемов в другие рубины, и они получат его в свое распоряжение.Например, как продолжение вышесказанного:

rvm install 1.8.7
rvm gemset copy 1.9.3@global 1.8.7@global

и теперь гем sqlite3 доступен для всех наборов гемов 1.8.7 (при условии, что у меня есть аргументы в правильном порядке - я не могу, вв каком случае переключатели 1.9.3 и 1.8.7).Это не совсем идеально, так как обновления одного рубина не становятся автоматически видимыми в других, вам придется копировать каждый рубин по отдельности, и я полагаю, что вы, возможно, в конечном итоге забьете любые зависимые от рубина глобальные драгоценные камни, которые вынастроить в каждом.Если этот последний пункт не является проблемой, которую вы предвидите как проблему, вы, возможно, могли бы написать сценарий, чтобы избежать утомительности, подразумеваемой в первых двух пунктах.

Отказ от ответственности: это составлено строго из чтениячерез документы RVM, и я на самом деле не пробовал это.Если я что-то не так понял, я буду рад отредактировать ответ, чтобы исправить это.

...