Wie aus der vorherigen Antwort hervorgeht, ist dies ziemlich viel zu behandeln. Betrachten Sie dies als eine kurze Einführung.
Edelsteine sind die Art und Weise, wie Ruby-Bibliotheken verpackt werden. Sie sind für Ruby das, was Gläser für Java sind. In einer Gem-Datei finden Sie Ruby-Code (.rb-Dateien), aber auch Tests sowie eine spezielle Datei mit Informationen zum Gem selbst, wie z. B. Name, Abhängigkeiten und Version ( gemspec ). Jedes Ruby-Projekt kann die benötigten Edelsteine über eine Gem-Datei definieren , die nur Abhängigkeiten deklarieren muss. Rubygems ist der Name des Paketmanagers - des Tools, mit dem die Pakete installiert werden (während die Edelsteine die Pakete selbst sind). Rubygems ist jetzt Teil von Ruby.
Bundler macht das Management von Edelsteinen erträglich. Basierend auf Ihrer Gemfile werden durch einen einfachen Aufruf des Bundlers mithilfe der Bundle- Installation alle erforderlichenGemsheruntergeladen und installiert. Mit dem Standardbefehl gem müssten Sie jeden manuell mit installierengem install <gem_name>
. Bundler ist nicht Teil von Ruby (es ist selbst als Juwel verpackt ), 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 tatsächlich nicht zu verwenden).
RVM ist ein Tool, mit dem Sie mehrere Ruby-Versionen auf einem Computer installieren und bei Bedarf zwischen diesen wechseln können. Dies kann verwendet werden, um sowohl Ruby 1.8 als auch 1.9 oder sogar eine "MRT" (Matz's Ruby, die Standardimplementierung) und Alternativen (wie JRuby oder Rubinius) zu installieren. Beachten Sie, dass RVM in diesem Feld nicht allein ist, siehe z. B. rbenv .
Ein Gemset in RVM ist ein Satz von Gems, die für einen bestimmten Kontext spezifisch sind, normalerweise ein Projekt. Dies ist nützlich, wenn Sie beispielsweise verschiedene Anwendungen mit jeweils eigenen Edelsteinen entwickeln und diese getrennt halten möchten.
System Ruby ist bei Verwendung von RVM die auf dem Computer installierte Ruby-Version (dh nicht über RVM).
Wenn Sie gerade erst anfangen, sind Edelsteine und Bündler für Sie von Interesse. Sie können RVM und Edelsteine vorerst beiseite lassen.
Sie fordern in einer Frage mehr Informationen an, als für den Stapelüberlauf vorgesehen sind. Um alles abzudecken, würde man ein Buch brauchen.
Unter Ubuntu ist es einfach, Edelsteine in der "System" -Version von Ruby zu installieren und zu entfernen. Gewöhnen Sie sich also daran, reguläre Edelsteine über zu installieren und zu entfernen
sudo
. (Unter Mac OS würde ich andere Ratschläge geben, da Apple Ruby für den eigenen Gebrauch bündelt und es keine gute Idee ist, sich damit zu beschäftigen.) Wenn Sie dann eine Idee haben, wie die gesamte Edelsteinidee funktioniert, und wissen, dass Sie mehrere möchten Ruby-Versionen auf Ihrem System, versuchen Sie " rbenv " oder " RVM " und installieren Sie eine oder zwei Versionen in Ihrer Sandbox.Linux macht es einfach, Ruby über eine Distribution hinzuzufügen / zu entfernen, aber wir beschränken uns auf die Versionen, die die Distributionsbetreuer gepackt haben, daher installiere ich normalerweise von der Quelle. Bei der Verwaltung mehrerer Ruby-Versionen für Entwicklungs-, Test- und Produktionssysteme ist dies jedoch ein Problem. Deshalb wurden rbenv und RVM erfunden. Sie behandeln die schmutzigen Details, sodass wir uns auf die Programmierung konzentrieren können.
Ich habe sowohl rbenv als auch RVM verwendet und benutze rbenv seit ungefähr sechs Monaten mit guten Ergebnissen. Es ist weniger kompliziert als RVM, was ich mag. In beiden Fällen ist es einfach, verschiedene Versionen mit separaten Edelsteinsätzen zu installieren. Wenn Sie möchten, können Sie verschiedene Ruby-Versionen in verschiedenen Terminalfenstern öffnen, um die Kompatibilität zu testen.
Regel eins beim Debuggen ist, Änderungen nacheinander vorzunehmen, was für das Erlernen des Programmierens oder das Erlernen einer neuen Sprache gilt. Lass dich nicht ablenken, halte es einfach.
quelle