Как установить гем внутри гемсета из кода Ruby?
Я пытаюсь следовать этому точному рабочему процессу из кода Ruby:
rvm use 2.0.0@some-name --create
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.