如果需要,如何自动安装Ruby gem?

时间:2012-01-25 08:14:37

标签: ruby gem

鉴于使用特定gem的Ruby程序(例如term-ansicolor),如果需要,我如何自动安装gem?

换句话说,该计划确实:

require 'term/ansicolor'

并且,如果以前没有安装gem,我想安装它并继续执行程序而不是出错:

LoadError: no such file to load -- term/ansicolor
from (irb):1:in `require'
from (irb):1
from :0

实现这一目标最合适的方法是什么?

4 个答案:

答案 0 :(得分:3)

您应该考虑使用bundler。这是在Ruby软件中管理依赖关系的事实上的标准方法。

答案 1 :(得分:3)

这样的工具不可用。请在此处阅读有关它的详细讨论http://www.ruby-forum.com/topic/2728297

答案 2 :(得分:1)

或者,您可以将包构建到gem中,并将所需的gem作为依赖项放在gemspec中。然后在安装gem时会自动安装。

答案 3 :(得分:1)

我一直在使用这种模式:

require 'rubygems'
begin
  gem 'minitest'
rescue Gem::LoadError
  Gem.install('minitest')
  gem 'minitest'
end
require 'minitest'