2009-10-27 98 views
5

是否有一些ruby代码可用于从本地文件安装gem,如果没有安装该gem?ruby​​:代码安装gem如果丢失

我想它会看起来像:

if !gem_installed("some gem name") 
    system "gem install -l local_copy.gem" 
end 

我不知道是否存在任何让我检查这样还是不宝石...

+0

的[检查红宝石宝石可用性]可能的复制(http://stackoverflow.com/questions/1032114/check-for-ruby安装-gem-availability) – 2016-03-31 17:03:37

回答

6

检查可用性覆盖在此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创业板也

puts %x(#{cmd}) 
+1

'GEM :: LoadError'应该是'Gem :: LoadError' – Anna 2013-04-22 16:51:30

+1

在系统调用'gem install ...'之后,你可能想要使用'Gem.clear_paths'来实际加载gem。请参阅http://stackoverflow.com/questions/9384756/after-installing-a-gem-within-a-script-how-do-i-load-the-gem – 2013-07-18 01:03:30