鉴于使用特定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
实现这一目标最合适的方法是什么?
答案 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'