2009-10-27 51 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