【发布时间】:2019-12-13 21:07:23
【问题描述】:
是否有一些 ruby 代码可用于从本地文件安装 gem(如果未安装 gem)?
我认为它看起来像:
if !gem_installed("some gem name")
system "gem install -l local_copy.gem"
end
我不知道是否有任何东西可以让我检查这样的宝石......
【问题讨论】:
是否有一些 ruby 代码可用于从本地文件安装 gem(如果未安装 gem)?
我认为它看起来像:
if !gem_installed("some gem name")
system "gem install -l local_copy.gem"
end
我不知道是否有任何东西可以让我检查这样的宝石......
【问题讨论】:
此previous StackOverflow Quesiton 涵盖了检查可用性
begin
gem "somegem"
# with requirements
gem "somegem", ">=2.0"
rescue Gem::LoadError
# not installed
end
或
matches = Gem.source_index.find_name(gem.name, gem.version_requirements)
至于安装,看起来像 rails uses the system 也用于 gem install
puts %x(#{cmd})
【讨论】:
GEM::LoadError 应该是Gem::LoadError
gem install ... 之后使用Gem.clear_paths 来实际加载gem。见stackoverflow.com/questions/9384756/…
这是我的做法
['json','date','mail'].each { |req|
begin
gem req
rescue Gem::LoadError
puts " -> install gem " + req
Gem.install(req)
gem req
end
require req
}
【讨论】: