從Ruby腳本中,我想發送一條命令來安裝gem(如果缺失)。假設它是"foo"
。我認爲檢查寶石存在的命令是Gem.find_files
,安裝寶石的命令是Gem.install
。我嘗試這樣做:如何從Ruby腳本安裝gem?
if Gem.find_files("foo").empty?
Gem.install("foo")
end
和Gem.find_files
似乎工作,但Gem.install
返回一個錯誤Uninitialized constant Gem::DependencyInstaller
。假設這是要運行的代碼的第一部分,並且我正在使用新安裝的Ruby,除了Ruby 2附帶的核心庫之外,此時沒有安裝任何gem,那麼安裝gem的正確方法是什麼從Ruby腳本(而不是從殼)?
爲什麼不使用bundler和bundle install? – 2014-09-18 17:14:42
Ruby應用程序自己安裝依賴關係是非常不尋常的,特別是在不先詢問的情況下。 – tadman 2014-09-18 17:31:19
@SamD我認爲有人可能會這樣說。除非已安裝捆綁器,否則不能使用捆綁器。 – sawa 2014-09-18 17:39:54