2016-04-18 58 views
1

我正在寫一個批處理腳本作爲我寫的一個紅寶石程序的設置。它需要能夠如何寫一個批處理腳本來安裝紅寶石

a。確保Ruby安裝在用戶的計算機上(並且如果沒有將它們指向ruby下載頁面)

b。確保安裝了ruby「yaml」gem,這是它的先決條件。我試過

gem install yaml 

在批處理腳本中無濟於事。我怎樣才能編寫一個批處理腳本來完成這兩件事?

+0

您可以使用[bundler](http://bundler.io/)管理寶石(以及相應的版本)。 – orde

回答

0

您可以使用bundler來創建gem文件,而不是編寫自己的腳本。這樣人們可以在任何操作系統上安裝所有的寶石。

例子:

require 'rubygems' 
require 'bundler/setup' 
require 'nokogiri' 
require 'rest-client' 
#require all your gems like normal 

def parse(site) 
    Nokogiri::HTML(RestClient.get(site)) 
end 

而對於創業板文件:

source: "https://rubygems.org" 

gem 'nokogiri', '~> 1.6.7.2' #<= you can specify which version 
gem 'rest-client' #<= you don't have to specify a version though 

你已經得到的一切成立,cd到具有的Gemfile的目錄並運行bundle install在此之後將安裝所有寶石

0

據我所知, yaml寶石。雖然它在使用它的代碼中必須要求,但它作爲Ruby安裝的一部分進行分發。試試這個:

ruby -ryaml -e"puts 'YAML found'" 

它應該工作;如果將-r標記更改爲某個不存在的gem,則會看到引發的異常。

+0

這很好,除了我已經安裝了Ruby並使用yaml,但是當我運行時,它會吐出這個錯誤回到我身上:C:\ Users \ kyle> ruby​​ yaml -ryaml -e「puts'yaml found'」 ruby​​:No such such文件或目錄 - yaml(LoadError) – Leshy

+0

您需要在'ruby'後刪除'yaml'。 Ruby認爲這是Ruby腳本的filespec,但在這種情況下我們沒有。 –

+0

請記住永遠不要在yaml文件中使用選項卡 – 13aal