Das Ruby Begriffsuniversum kurz erklärt

RVM, gem, RubyGems, rbenv, Bundler etc.: Es gibt viele Begrifflichkeiten, die beim Kennenlernen von Ruby den Weg kreuzen. Ein kurzer Überblick über die wichtigsten Begriffe.

Ein Gem ist eine einzelne Ruby Bibliothek, die eine bestimmte Funktionalität bereitstellt und aus mehreren Dateien besteht. Weshalb im Zusammenhang mit gems oftmals auch von sog. Paketen die Rede ist. Ein Gem entspricht in etwa dem, was ein Modul für Node.js ist. In einem gem findet sich der Programmcode (.rb) sowie ggf. Testdateien. In einer gemspec-Datei werden allgemeine Informationen wie Name, Version, Lizenz etc. des gems definiert und der Inhalt der Bibliothek beschrieben. Im Gemfile wiederum werden die Bibliotheken gelistet, die ggf. für ein bestimmtes Projekt oder eine dezidierte Ruby Bibliothek zwingend erforderlich sind. Zusammen genommen sind die beiden Dateien (gemspec, Gemfile) mit einer package.json Datei im Node.js Kosmos vergleichbar.

RubyGems ist der Name des Package Managers für Ruby Bibliotheken. Mit ihm können gems installiert/entfernt werden ($ gem install <gem name>). RubyGems ist Teil von Ruby. Die unter RubyGems verlinkte Seite ist zugleich auch die erste Anlaufstelle, um installierbare Bibliotheken zu finden.

Bundler erleichtert die Installation und Verwaltung von gems und deren Abhängigkeiten. Basierend auf einem vorhandenen Gemfile lädt und installiert Bundler mit $ bundle install alle in dem Gemfile aufgelisteten gems. Bundler ist kein Teil von Ruby, sondern wird als gem installiert ($ gem install bundler).

RVM und rbenv sind beides Tools, um unterschiedliche Versionen von Ruby auf einem Rechner zu installieren und zu verwalten. Sie haben nichts mit der Installation und Aktualisierung von gems zu tun.

Man sollte Anfangs nicht zuviel wollen. Um erste Schritte zu machen, reicht dass Verständnis für gems und RubyGems vollkommen aus. Alles weitere kommt sowieso mit der Zeit.