2016-04-18 3 views
1

Ich schreibe ein Batch-Skript als Setup für ein Ruby-Programm, das ich schreibe. Es muss in der Lage sein,Wie schreibe ich ein Batch-Skript zur Installation von Ruby Juwel

a. Stellen Sie sicher, dass Ruby auf dem Computer des Benutzers installiert ist (und wenn sie nicht auf die Ruby-Download-Seite verweisen)

b. stelle sicher, dass der Rubin "Yaml" gem installiert ist, was eine Voraussetzung dafür ist. Ich habe versucht,

gem install yaml 

im Batch-Skript vergebens. Wie kann ich ein Batch-Skript schreiben, das diese beiden Dinge erledigt?

+0

Sie können [Bundler] (http://bundler.io/) zum Verwalten von Gems (und entsprechenden Versionen) verwenden. – orde

Antwort

0

Anstatt ein eigenes Skript zu schreiben, können Sie bundler verwenden und eine gemfile erstellen. Auf diese Weise können die Leute alle Edelsteine ​​auf jedem Betriebssystem installieren.

Beispiel:

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 

Und für die Edelstein-Datei:

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 

Nachdem Sie alles eingerichtet, cd in das Verzeichnis haben, das das gemfile hat und läuft bundle install dies installiert alle die edelsteine ​​

0

Soweit ich weiß, gibt es ist kein yaml gem. Obwohl es in Code benötigt wird, der es verwendet, wird es als Teil einer Ruby-Installation verteilt. Versuchen Sie folgendes:

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

Es sollte funktionieren; Wenn Sie das Tok "-r" in ein nicht vorhandenes Juwel ändern, wird eine Ausnahme ausgelöst.

+0

Das ist toll, außer ich habe Ruby installiert und verwende Yaml, aber wenn ich renne, spuckt dieser Fehler mich zurück: C: \ Users \ kyle> Ruby Yaml -ryaml -e "puts 'Yaml gefunden" Ruby: Nein wie Datei oder Verzeichnis - yaml (LoadError) – Leshy

+0

Sie müssen die 'Yaml' nach dem 'Ruby' entfernen. Ruby denkt, dass das die Dateispezifikation eines Ruby-Skripts ist, aber in diesem Fall haben wir keins. –

+0

Denken Sie daran, niemals Tabs in einer YAML-Datei zu verwenden – 13aal

Verwandte Themen