如何从Ruby代码在gemset中安装gem?

时间:2014-01-17 00:17:34

标签: ruby rvm gemset

我正在尝试从Ruby代码中遵循这个确切的工作流程:

  1. rvm use 2.0.0@some-name --create
  2. gem install some-gem
  3. 我没有找到关于在Ruby中使用RVM的文档。

    编辑:我知道shell中的这些步骤是正确的,但我想在Ruby脚本中运行它们。例如ruby myscript.rb将执行这两个步骤。

    将这两个指令放在反引号中时,它不起作用,上面示例中的some-gem安装在当前正在使用的任何gemset中。

    编辑2:我想要一个Ruby脚本,它创建一个新的RVM gemset并在其中安装一个gem(例如,Devise)。

2 个答案:

答案 0 :(得分:0)

“rvm不是函数”这是因为rvm未加载到您的环境中look up here,请参阅 3。重新加载外壳配置&测试安装疑难解答

此外,如果您想要处理项目中的宝石,可以使用bundler

答案 1 :(得分:0)

正如Michal Papis在Github上this question所回答的那样,只能通过黑客攻击并使用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