RVM и автоматическое переключение гемсетов - PullRequest
26 голосов
/ 28 февраля 2011

Возможно ли, чтобы rvm знал, какой набор гемов он должен использовать при навигации по определенному каталогу, почти так же, как вы можете получить информацию о текущей ветке, просто перемещаясь по этому каталогу?

Я понимаю, как git работает таким образом, поскольку у каждого каталога есть свой собственный каталог .git в корне, но я не знал, возможно ли это, поскольку .rvm - это скорее конфигурация для всего пользователя. Или, возможно, ответ заключается в создании файла .rvm в каждом каталоге?

Ответы [ 5 ]

30 голосов
/ 09 мая 2013

Для других, посещающих это, есть новый способ сделать это, не позволяя выполнять произвольный скрипт оболочки в файле .rvmrc.

Создайте файл с именем .ruby-gemset, содержащий только набор гемовname in.

gemset

Требуется обновленная версия rvm, чтобы это работало.

Вы также можете указать версию ruby, создав файл с именем .ruby-version, содержащий только rubyверсия:

1.9.3

Преимущество этого формата в том, что он совместим с rbenv и rbfu.

Если в существующих проектах используется устаревший .rvmrc,Вы можете преобразовать их в новый формат, используя команду:

rvm rvmrc to .ruby-version
29 голосов
/ 28 февраля 2011

Создайте .rvmrc файл в каждом проекте / ветви с содержимым, подобным этому:

rvm gemset use xxxx

Сохраните его.В следующий раз, когда вы cd войдете в эту папку, вы, вероятно, получите запрос безопасности от RVM, чтобы убедиться, что вы хотите использовать .rvmrc.После принятия вы увидите «Теперь, используя gemset« xxxx »» каждый раз, когда переходите в эту папку.

25 голосов
/ 06 февраля 2012

Я считаю, что самый простой способ добиться этого - перейти в папку проекта и затем использовать следующую команду:

rvm --rvmrc --create <ruby>@<desired-gemset-name>

например. rvm --rvmrc --create 1.9.2-p290@testing_gemset

За один раз RVM создаст файл .rvmrc, заполнит его, установит правильную версию ruby ​​- при необходимости - и (обычно) переключится на правильную версию ruby ​​и набор гемов. Обычно я говорю, потому что я нахожу, что иногда мне нужно cd . после выполнения этой команды, чтобы заставить RVM забрать изменения.

0 голосов
/ 01 октября 2013

Если вы не можете заставить работать .ruby-version / .ruby-gemset, подумайте, использует ли ваш терминал вход в оболочку, и попробуйте выполнить команду в разделе оболочки в http://rvm.io/support/faq:

$ rvm get [head|stable] --auto
0 голосов
/ 28 февраля 2011

Возможно: http://rvm.io/workflow/rvmrc/:

rvm use ruby@gemset
...