如何从Ruby脚本安装gem?

如何从Ruby脚本安装gem?,ruby,gem,Ruby,Gem,在Ruby脚本中,如果缺少gem,我想发送一个命令来安装它。假设它是“foo”。我认为检查gem是否存在的命令是gem.find_files,安装gem的命令是gem.install。我试过这个: if Gem.find_files("foo").empty? Gem.install("foo") end 和Gem.find_files似乎可以工作,但是Gem.install返回一个错误未初始化常量Gem::DependencyInstaller。假设这是要运行的代码的第一部分,并且我正在

在Ruby脚本中,如果缺少gem,我想发送一个命令来安装它。假设它是
“foo”
。我认为检查gem是否存在的命令是
gem.find_files
,安装gem的命令是
gem.install
。我试过这个:

if Gem.find_files("foo").empty?
  Gem.install("foo")
end
Gem.find_files
似乎可以工作,但是
Gem.install
返回一个错误
未初始化常量Gem::DependencyInstaller
。假设这是要运行的代码的第一部分,并且我正在使用一个新安装的Ruby,除了Ruby 2附带的核心库之外,目前没有安装gems,那么从Ruby脚本(而不是从shell)安装gems的正确方法是什么呢?

如何:

require 'rubygems/dependency_installer.rb' 

为什么不使用bundler和bundle安装?Ruby应用程序自己安装依赖项是很少见的,尤其是在没有事先询问的情况下。@SamD我想可能有人会这么说。除非您安装了bundler,否则不能使用bundler。@tadman我可以添加询问部分和用户提示是否继续。实际上,在我的代码中还有更多类似的东西。为了简单起见,我省略了这一点。