Как установить гем внутри гемсета из кода Ruby?

Я пытаюсь следовать этому точному рабочему процессу из кода Ruby:

  1. rvm use 2.0.0@some-name --create
  2. gem install some-gem

Я не нашел много документации об использовании RVM в Ruby.

Изменить: я знаю, что эти шаги являются правильными из оболочки, но я хотел бы запустить их из сценария Ruby. например ruby myscript.rb что бы запустить эти два шага.

Помещая эти две директивы в кавычки, это не работает и some-gem из приведенного выше примера устанавливается внутри того набора, который сейчас используется.

Редактировать 2: Мне нужен скрипт на Ruby, который создает новый набор гемов RVM и устанавливает внутри него гем (например, Devise).

2 ответа

Решение

Как ответил Михал Папис из Github в этом вопросе, это можно сделать только с помощью небольшого взлома и использования гема rvm-with:

require "rvm/with"
RVM.with "2.1.0@gemset --create" do |r|
  puts r.execute "gem install ..."
  puts r.execute "bundle exec ruby ./continuation_script.rb"
end

"rvm - это не функция", это потому, что rvm не загружен в вашей среде, посмотрите здесь, см. 3. Перезагрузите конфигурацию оболочки и протестируйте ее, а также устраните неполадки при установке.

Также, если вы хотите обработать драгоценные камни в вашем проекте, вы можете использовать bundler.

Другие вопросы по тегам