Wie in der vorherigen Antwort, dies ist eine ganze Menge zu decken, so betrachten Sie dies eine kurze Einführung.
gems sind die Art und Weise wie Ruby-Bibliotheken verpackt sind. Sie sind Ruby welche Gläser zu Java sind. In einer Gem-Datei finden Sie Ruby-Code (.rb-Dateien), aber auch Tests und eine spezielle Datei, die Informationen über den Edelstein selbst enthält, wie Name, Abhängigkeiten und Version (gemspec). Jedes Ruby-Projekt kann die benötigten Edelsteine über eine Gemfile definieren, die nur Abhängigkeiten deklarieren muss. Rubygems ist der Name des Paketmanagers - das Werkzeug, das zum Installieren der Pakete verwendet wird (während die Edelsteine die Pakete selbst sind). Rubygems gehört jetzt zu Ruby.
Bundler ist, was die Verwaltung von Edelsteinen erträglich macht. Basierend auf Ihrer Gemfile wird ein einfacher Aufruf an Bundler mit bundle install herunterladen und installieren Sie alle erforderlichen Edelsteine. Wenn Sie den Standard-Befehl "Gem" verwenden, müssen Sie diese manuell unter Verwendung von gem install <gem_name>
installieren.Bundler ist nicht Teil von Ruby (es ist selbst packaged as a gem), aber es ist ein "De-facto-Standard" für die meisten Anwendungen (Sie werden nicht viele Leute finden, die es nicht verwenden, und keine guten Gründe, es nicht zu benutzen, tatsächlich).
RVM ist ein Tool, mit dem Sie mehrere Versionen von Ruby auf einer Maschine installieren und bei Bedarf zwischen diesen wechseln können. Dies kann verwendet werden, um sowohl einen Ruby 1.8 und 1.9 oder sogar ein "MRI" (Matz's Ruby, die Standardimplementierung) und Alternativen (wie JRuby oder Rubinius) zu installieren. Beachten Sie, dass RVM in diesem Feld nicht allein ist, siehe zum Beispiel rbenv.
Ein gemset in RVM ist eine Reihe von Edelsteinen, die für einen bestimmten Kontext, in der Regel ein Projekt, spezifisch sind. Dies ist nützlich, wenn Sie beispielsweise verschiedene Anwendungen mit jeweils eigenen Sets von Edelsteinen entwickeln und diese getrennt halten möchten.
system Ruby ist, wenn RVM verwendet wird, die Ruby-Version, die auf der Maschine installiert ist (dh nicht über RVM).
Wenn Sie gerade erst anfangen, sind Edelsteine und Bundler von Interesse für Sie. Sie können RVM und Edelsteine für jetzt beiseite lassen.
Gute Antwort, könnten Sie bitte klären: Was ist der Unterschied zwischen Edelsteinen und RubyGems? Und zwischen Gemspec und Gemfile? Auch welche der oben aufgelisteten Programme (z. B. Bundler) sind in "Ruby" enthalten und welche sind separate Anwendungen (ich glaube RVM ist getrennt)? Und ist Gemset nur ein Konzept nur innerhalb von RVM oder ist es auch innerhalb von Ruby Kern (oder andere Dinge, wie Rbenv in der anderen Antwort erwähnt)? Und wenn Bundler das Verwalten von Edelsteinen erleichtert, was war der Vorbund dafür? (Wie würden Sie Edelsteine ohne Bündler verwalten, nur damit ich weiß, auch wenn ich es nie so machen würde.) Danke! – user779159
entsprechend aktualisiert. – Martin
Also Rubygems ist der Name des Paketmanagers, den Sie mit dem 'Gem' Befehl aufrufen? Und ist Bundler auch Teil von Ruby selbst, genau wie Rubygems, oder muss ich es irgendwie einbeziehen? – user779159